Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Dec 2016 01:45:31 +0000 (UTC)
From:      Eric van Gyzen <vangyzen@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-10@freebsd.org
Subject:   svn commit: r310099 - stable/10/sys/kern
Message-ID:  <201612150145.uBF1jV7S030898@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: vangyzen
Date: Thu Dec 15 01:45:31 2016
New Revision: 310099
URL: https://svnweb.freebsd.org/changeset/base/310099

Log:
  MFC r309460
  
  thr_set_name(): silently truncate the given name as needed
  
  Instead of failing with ENAMETOOLONG, which is swallowed by
  pthread_set_name_np() anyway, truncate the given name to MAXCOMLEN+1
  bytes.  This is more likely what the user wants, and saves the
  caller from truncating it before the call (which was the only
  recourse).
  
  The man page changes were not merged because thr_set_name.2
  does not exist on stable/10.
  
  Sponsored by:	Dell EMC

Modified:
  stable/10/sys/kern/kern_thr.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/kern/kern_thr.c
==============================================================================
--- stable/10/sys/kern/kern_thr.c	Wed Dec 14 23:36:32 2016	(r310098)
+++ stable/10/sys/kern/kern_thr.c	Thu Dec 15 01:45:31 2016	(r310099)
@@ -569,8 +569,11 @@ sys_thr_set_name(struct thread *td, stru
 	error = 0;
 	name[0] = '\0';
 	if (uap->name != NULL) {
-		error = copyinstr(uap->name, name, sizeof(name),
-			NULL);
+		error = copyinstr(uap->name, name, sizeof(name), NULL);
+		if (error == ENAMETOOLONG) {
+			error = copyin(uap->name, name, sizeof(name) - 1);
+			name[sizeof(name) - 1] = '\0';
+		}
 		if (error)
 			return (error);
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612150145.uBF1jV7S030898>