Merge commit 'refs/top-bases/linux-zfs-branch' into linux-zfs-branch

This commit is contained in:
Brian Behlendorf 2009-01-14 12:06:43 -08:00
commit 8af736618c
1 changed files with 9 additions and 8 deletions

View File

@ -33,22 +33,23 @@
const char * const char *
getexecname(void) getexecname(void)
{ {
static char execname[PATH_MAX + 1]; static char execname[PATH_MAX + 1] = "";
/* Must be MT-safe */
static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER; static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
char *ptr = NULL;
ssize_t rc;
pthread_mutex_lock(&mtx); pthread_mutex_lock(&mtx);
if (strlen(execname) == 0) { if (strlen(execname) == 0) {
ssize_t rc = readlink("/proc/self/exe", execname, sizeof(execname - 1)); rc = readlink("/proc/self/exe", execname, sizeof(execname) - 1);
if (rc == -1) { if (rc == -1) {
execname[0] = '\0'; execname[0] = '\0';
pthread_mutex_unlock(&mtx); } else {
return NULL;
} else
execname[rc] = '\0'; execname[rc] = '\0';
ptr = execname;
}
} }
pthread_mutex_unlock(&mtx);
return execname; pthread_mutex_unlock(&mtx);
return ptr;
} }