Fix: string comparison on incorrect length in context provider
[lttng-ust.git] / liblttng-ust / lttng-context-provider.c
index 6c067e2fecae06548a3d4495ef9477b2495a6a5b..5557b137cdc24f4ed68077c7bc72d23f94e7e779 100644 (file)
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#define _LGPL_SOURCE
 #include <sys/types.h>
 #include <unistd.h>
 #include <lttng/ust-context-provider.h>
@@ -67,8 +68,10 @@ int lttng_ust_context_provider_register(struct lttng_ust_context_provider *provi
        uint32_t hash;
        int ret = 0;
 
+       lttng_ust_fixup_tls();
+
        /* Provider name starts with "$app.". */
-       if (strncmp("$app.", provider->name, strlen("$app.") != 0))
+       if (strncmp("$app.", provider->name, strlen("$app.")) != 0)
                return -EINVAL;
        /* Provider name cannot contain a column character. */
        if (strchr(provider->name, ':'))
@@ -94,6 +97,8 @@ end:
 
 void lttng_ust_context_provider_unregister(struct lttng_ust_context_provider *provider)
 {
+       lttng_ust_fixup_tls();
+
        if (ust_lock())
                goto end;
        lttng_ust_context_set_session_provider(provider->name,
This page took 0.022978 seconds and 4 git commands to generate.