Add `lttng_bytecode_interpret_format_output()` for top of stack extraction
[lttng-ust.git] / liblttng-ust / compat.h
index 69761880e125fbff0504320697c22203180b7d97..e1f5f8b3f8ed5aeec2bd57f99df458ddf2bf0332 100644 (file)
@@ -23,6 +23,7 @@
 
 #include <pthread.h>
 #include <errno.h>
+#include <string.h>
 
 #include <lttng/ust-abi.h>
 
 static inline
 int lttng_pthread_setname_np(const char *name)
 {
+       /*
+        * Some implementations don't error out, replicate this behavior for
+        * consistency.
+        */
+       if (strnlen(name, LTTNG_UST_ABI_PROCNAME_LEN) >= LTTNG_UST_ABI_PROCNAME_LEN) {
+               return ERANGE;
+       }
+
        return pthread_setname_np(pthread_self(), name);
 }
 
@@ -59,6 +68,11 @@ int lttng_pthread_getname_np(char *name, size_t len)
 static inline
 int lttng_pthread_setname_np(const char *name)
 {
+       /* Replicate pthread_setname_np's behavior */
+       if (strnlen(name, LTTNG_UST_ABI_PROCNAME_LEN) >= LTTNG_UST_ABI_PROCNAME_LEN) {
+               return ERANGE;
+       }
+
        pthread_set_name_np(pthread_self(), name);
        return 0;
 }
@@ -77,6 +91,10 @@ int lttng_pthread_getname_np(char *name, size_t len)
 static inline
 int lttng_pthread_setname_np(const char *name)
 {
+       /* Replicate pthread_setname_np's behavior */
+       if (strnlen(name, LTTNG_UST_ABI_PROCNAME_LEN) >= LTTNG_UST_ABI_PROCNAME_LEN) {
+               return ERANGE;
+       }
        return prctl(PR_SET_NAME, name, 0, 0, 0);
 }
 
This page took 0.042909 seconds and 4 git commands to generate.