From: Ulrich Drepper Date: Thu, 22 Dec 2011 00:26:29 +0000 (-0500) Subject: Fix reading thread name from comm file X-Git-Tag: glibc-2.15~37 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=60e8585f2a2aa288a403a581f1dc8d3fc373598b;p=thirdparty%2Fglibc.git Fix reading thread name from comm file --- diff --git a/NEWS b/NEWS index e40ce3f809a..aba4a8db752 100644 --- a/NEWS +++ b/NEWS @@ -13,7 +13,7 @@ Version 2.15 12885, 12892, 12907, 12922, 12935, 13007, 13021, 13067, 13068, 13090, 13092, 13114, 13118, 13123, 13134, 13138, 13147, 13150, 13179, 13192, 13268, 13276, 13291, 13335, 13337, 13344, 13358, 13367, 13439, 13446, - 13472, 13484, 13506, 13524 + 13472, 13484, 13506, 13515, 13524 * New program pldd to list loaded object of a process Implemented by Ulrich Drepper. diff --git a/nptl/ChangeLog b/nptl/ChangeLog index b622fe7c0f2..31177bf17c7 100644 --- a/nptl/ChangeLog +++ b/nptl/ChangeLog @@ -1,3 +1,9 @@ +2011-12-21 Ulrich Drepper + + [BZ #13515] + * sysdeps/unix/sysv/linux/pthread_getname.c (pthread_getname_np): + Correct reading name from file. + 2011-12-14 Carlos O'Donell * allocatestack.c (allocate_stack): Return errno on failure. diff --git a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c index 6e7786f9874..2c5ee6305e9 100644 --- a/nptl/sysdeps/unix/sysv/linux/pthread_getname.c +++ b/nptl/sysdeps/unix/sysv/linux/pthread_getname.c @@ -1,5 +1,5 @@ /* pthread_getname_np -- Get thread name. Linux version - Copyright (C) 2010 Free Software Foundation, Inc. + Copyright (C) 2010, 2011 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -57,6 +57,15 @@ pthread_getname_np (th, buf, len) ssize_t n = TEMP_FAILURE_RETRY (read_not_cancel (fd, buf, len)); if (n < 0) res = errno; + else + { + if (buf[n - 1] == '\n') + buf[n - 1] = '\0'; + else if (n == len) + res = ERANGE; + else + buf[n] = '\0'; + } close_not_cancel_no_status (fd);