Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 4 Oct 2018 21:55:59 +0000 (UTC)
From:      Brooks Davis <brooks@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r339184 - head/include
Message-ID:  <201810042155.w94LtxEN096297@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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



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