svn commit: r339184 - head/include

Brooks Davis brooks at FreeBSD.org
Thu Oct 4 21:55:59 UTC 2018


Author: brooks
Date: Thu Oct  4 21:55:58 2018
New Revision: 339184
URL: https://svnweb.freebsd.org/changeset/base/339184

Log:
  Reduce NL_ARGMAX to 4096 to match Linux.
  
  NL_ARGMAX is the maximum number of positional arguments supported by
  printf(3). Prior to r308145 it was declared as 99 and not enforced.
  r308145 added enforcement and increased the value to 64k.
  
  Unfortunately, development versions of PostgreSQL used the system
  definition to allocate and zero an NL_ARGMAX * 4 sized array on the
  stack of its snprintf implementation with measurable performance
  impacts. This has been fixed in new PostgreSQL versions, but it is
  possible that other programs suffer from this problem.
  
  A value of 4096 puts us on par with Linux and is certainly large enough
  for any reasonable program.
  
  Reviewed by:	mjg
  Reported by:	mjg
  Approved by:	re (gjb)
  Differential revision:	https://reviews.freebsd.org/D17387
  Differential revision:	https://reviews.freebsd.org/D8286

Modified:
  head/include/limits.h

Modified: head/include/limits.h
==============================================================================
--- head/include/limits.h	Thu Oct  4 20:01:48 2018	(r339183)
+++ head/include/limits.h	Thu Oct  4 21:55:58 2018	(r339184)
@@ -122,7 +122,7 @@
 #endif
 
 #if __XSI_VISIBLE || __POSIX_VISIBLE >= 200809
-#define	NL_ARGMAX		65536	/* max # of position args for printf */
+#define	NL_ARGMAX		4096	/* max # of position args for printf */
 #define	NL_MSGMAX		32767
 #define	NL_SETMAX		255
 #define	NL_TEXTMAX		2048


More information about the svn-src-head mailing list