X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=liblttng-ust%2Fcompat.h;h=e1f5f8b3f8ed5aeec2bd57f99df458ddf2bf0332;hb=850550e0086f407ee5cd45d9d9893a463e4692dc;hp=69761880e125fbff0504320697c22203180b7d97;hpb=0db3d6ee9be2906d02955fedee802338bcfaef3a;p=lttng-ust.git diff --git a/liblttng-ust/compat.h b/liblttng-ust/compat.h index 69761880..e1f5f8b3 100644 --- a/liblttng-ust/compat.h +++ b/liblttng-ust/compat.h @@ -23,6 +23,7 @@ #include #include +#include #include @@ -33,6 +34,14 @@ 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); }