src: resolve Coverity hits (#183)

* coverity: wrap the access to global.state with mutex

* coverity: add return to prevent double work and double mutex unlocking

* update api version

* address code review comments: move the variable declaration
diff --git a/src/ittnotify/ittnotify_config.h b/src/ittnotify/ittnotify_config.h
index 7b0d855..274d466 100644
--- a/src/ittnotify/ittnotify_config.h
+++ b/src/ittnotify/ittnotify_config.h
@@ -208,10 +208,10 @@
 #define ITT_MAGIC { 0xED, 0xAB, 0xAB, 0xEC, 0x0D, 0xEE, 0xDA, 0x30 }
 
 /* Replace with snapshot date YYYYMMDD for promotion build. */
-#define API_VERSION_BUILD    20250429
+#define API_VERSION_BUILD    20250807
 
 #ifndef API_VERSION_NUM
-#define API_VERSION_NUM 3.26.0
+#define API_VERSION_NUM 3.26.3
 #endif /* API_VERSION_NUM */
 
 #define API_VERSION "ITT-API-Version " ITT_TO_STR(API_VERSION_NUM) \
diff --git a/src/ittnotify/ittnotify_static.c b/src/ittnotify/ittnotify_static.c
index f78adaf..85f66ec 100644
--- a/src/ittnotify/ittnotify_static.c
+++ b/src/ittnotify/ittnotify_static.c
@@ -952,6 +952,7 @@
         {
             if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
             ITTNOTIFY_NAME(bind_context_metadata_to_counter)(counter, length, metadata);
+            return;
         }
         else
         {
@@ -1344,14 +1345,12 @@
 
 static int __itt_is_collector_available(void)
 {
-    int is_available;
-
     ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
     if (_N_(_ittapi_global).state == __itt_collection_uninitialized)
     {
         _N_(_ittapi_global).state = (NULL == __itt_get_lib_name()) ? __itt_collection_collector_absent : __itt_collection_collector_exists;
     }
-    is_available = (_N_(_ittapi_global).state == __itt_collection_collector_exists ||
+    int is_available = (_N_(_ittapi_global).state == __itt_collection_collector_exists ||
         _N_(_ittapi_global).state == __itt_collection_init_successful);
     __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
     return is_available;
@@ -1663,11 +1662,14 @@
 
 ITT_EXTERN_C __itt_collection_state (_N_(get_collection_state))(void)
 {
+    ITT_MUTEX_INIT_AND_LOCK(_N_(_ittapi_global));
     if (!_N_(_ittapi_global).api_initialized && _N_(_ittapi_global).thread_list == NULL)
     {
         __itt_init_ittlib_name(NULL, __itt_group_all);
     }
-    return _N_(_ittapi_global).state;
+    __itt_collection_state state = _N_(_ittapi_global).state;
+    if (PTHREAD_SYMBOLS) __itt_mutex_unlock(&_N_(_ittapi_global).mutex);
+    return state;
 }
 
 /* !!! should be called from the library destructor !!!