Przeglądaj źródła

fix possible fd leak via missing O_CLOEXEC in pthread_setname_np

the omission of the flag here seems to have been an oversight when the
function was added in 8fb28b0b3e7a5e958fb844722a4b2ef9bc244af1
Érico Rolim 4 lat temu
rodzic
commit
074932c84d
1 zmienionych plików z 1 dodań i 1 usunięć
  1. 1 1
      src/thread/pthread_setname_np.c

+ 1 - 1
src/thread/pthread_setname_np.c

@@ -19,7 +19,7 @@ int pthread_setname_np(pthread_t thread, const char *name)
 
 	snprintf(f, sizeof f, "/proc/self/task/%d/comm", thread->tid);
 	pthread_setcancelstate(PTHREAD_CANCEL_DISABLE, &cs);
-	if ((fd = open(f, O_WRONLY)) < 0 || write(fd, name, len) < 0) status = errno;
+	if ((fd = open(f, O_WRONLY|O_CLOEXEC)) < 0 || write(fd, name, len) < 0) status = errno;
 	if (fd >= 0) close(fd);
 	pthread_setcancelstate(cs, 0);
 	return status;