Joseph Myers 
							
						 
					 
					
						
						
							
						
						bfff8b1bec 
					 
					
						
						
							
							Update copyright dates with scripts/update-copyrights.  
						
						 
						
						
						
						
					 
					
						2017-01-01 00:14:16 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						326e288b1e 
					 
					
						
						
							
							vfprintf: Avoid creating a VLA which complicates stack management  
						
						 
						
						
						
						
					 
					
						2016-09-02 15:36:52 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						db3476aff1 
					 
					
						
						
							
							libio: Implement vtable verification [BZ  #20191 ]  
						
						 
						
						... 
						
						
						
						This commit puts all libio vtables in a dedicated, read-only ELF
section, so that they are consecutive in memory.  Before any indirect
jump, the vtable pointer is checked against the section boundaries,
and the process is terminated if the vtable pointer does not fall into
the special ELF section.
To enable backwards compatibility, a special flag variable
(_IO_accept_foreign_vtables), protected by the pointer guard, avoids
process termination if libio stream object constructor functions have
been called earlier.  Such constructor functions are called by the GCC
2.95 libstdc++ library, and this mechanism ensures compatibility with
old binaries.  Existing callers inside glibc of these functions are
adjusted to call the original functions, not the wrappers which enable
vtable compatiblity.
The compatibility mechanism is used to enable passing FILE * objects
across a static dlopen boundary, too. 
						
						
					 
					
						2016-06-23 20:01:52 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						fdcf1c9480 
					 
					
						
						
							
							vfprintf: Fix memory with large width and precision [BZ  #19931 ]  
						
						 
						
						... 
						
						
						
						Free a previously allocated work buffer if it is not large enough. 
						
						
					 
					
						2016-04-25 14:10:26 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						f7a9f785e5 
					 
					
						
						
							
							Update copyright dates with scripts/update-copyrights.  
						
						 
						
						
						
						
					 
					
						2016-01-04 16:05:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						db8ad8fac3 
					 
					
						
						
							
							vfprintf: Rewrite printf_positional to use struct scratch_buffer  
						
						 
						
						
						
						
					 
					
						2015-10-17 12:05:12 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Paul Pluzhnikov 
							
						 
					 
					
						
						
							
						
						560b04462f 
					 
					
						
						
							
							Fix BZ  #18872  -- memory leak in printf_positional.  
						
						 
						
						
						
						
					 
					
						2015-09-16 09:16:11 -07:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						ec999b8e5e 
					 
					
						
						
							
							Move bits/libc-lock.h and bits/libc-lockP.h out of bits/ (bug 14912).  
						
						 
						
						... 
						
						
						
						It was noted in
<https://sourceware.org/ml/libc-alpha/2012-09/msg00305.html > that the
bits/*.h naming scheme should only be used for installed headers.
This patch renames bits/libc-lock.h to plain libc-lock.h and
bits/libc-lockP.h to plain libc-lockP.h to follow that convention.
Note that I don't know where libc-lockP.h comes from for Hurd (the
Hurd libc-lock.h includes libc-lockP.h, but the only libc-lockP.h in
the glibc source tree is for NPTL) - some unmerged patch? - but I
updated the #include in the Hurd libc-lock.h anyway.
Tested for x86_64 (testsuite, and that installed stripped shared
libraries are unchanged by the patch).
	[BZ #14912 ]
	* bits/libc-lock.h: Move to ...
	* sysdeps/generic/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/mach/hurd/bits/libc-lock.h: Move to ...
	* sysdeps/mach/hurd/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	[_LIBC]: Include <libc-lockP.h> instead of <bits/libc-lockP.h>.
	* sysdeps/mach/bits/libc-lock.h: Move to ...
	* sysdeps/mach/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lock.h: Move to ...
	* sysdeps/nptl/libc-lock.h: ...here.
	(_BITS_LIBC_LOCK_H): Rename macro to _LIBC_LOCK_H.
	* sysdeps/nptl/bits/libc-lockP.h: Move to ...
	* sysdeps/nptl/libc-lockP.h: ...here.
	(_BITS_LIBC_LOCKP_H): Rename macro to _LIBC_LOCKP_H.
	* crypt/crypt_util.c: Include <libc-lock.h> instead of
	<bits/libc-lock.h>.
	* dirent/scandir-tail.c: Likewise.
	* dlfcn/dlerror.c: Likewise.
	* elf/dl-close.c: Likewise.
	* elf/dl-iteratephdr.c: Likewise.
	* elf/dl-lookup.c: Likewise.
	* elf/dl-open.c: Likewise.
	* elf/dl-support.c: Likewise.
	* elf/dl-writev.h: Likewise.
	* elf/rtld.c: Likewise.
	* grp/fgetgrent.c: Likewise.
	* gshadow/fgetsgent.c: Likewise.
	* gshadow/sgetsgent.c: Likewise.
	* iconv/gconv_conf.c: Likewise.
	* iconv/gconv_db.c: Likewise.
	* iconv/gconv_dl.c: Likewise.
	* iconv/gconv_int.h: Likewise.
	* iconv/gconv_trans.c: Likewise.
	* include/link.h: Likewise.
	* inet/getnameinfo.c: Likewise.
	* inet/getnetgrent.c: Likewise.
	* inet/getnetgrent_r.c: Likewise.
	* intl/bindtextdom.c: Likewise.
	* intl/dcigettext.c: Likewise.
	* intl/finddomain.c: Likewise.
	* intl/gettextP.h: Likewise.
	* intl/loadmsgcat.c: Likewise.
	* intl/localealias.c: Likewise.
	* intl/textdomain.c: Likewise.
	* libidn/idn-stub.c: Likewise.
	* libio/libioP.h: Likewise.
	* locale/duplocale.c: Likewise.
	* locale/freelocale.c: Likewise.
	* locale/newlocale.c: Likewise.
	* locale/setlocale.c: Likewise.
	* login/getutent_r.c: Likewise.
	* login/getutid_r.c: Likewise.
	* login/getutline_r.c: Likewise.
	* login/utmp-private.h: Likewise.
	* login/utmpname.c: Likewise.
	* malloc/mtrace.c: Likewise.
	* misc/efgcvt.c: Likewise.
	* misc/error.c: Likewise.
	* misc/fstab.c: Likewise.
	* misc/getpass.c: Likewise.
	* misc/mntent.c: Likewise.
	* misc/syslog.c: Likewise.
	* nis/nis_call.c: Likewise.
	* nis/nis_callback.c: Likewise.
	* nis/nss-default.c: Likewise.
	* nis/nss_compat/compat-grp.c: Likewise.
	* nis/nss_compat/compat-initgroups.c: Likewise.
	* nis/nss_compat/compat-pwd.c: Likewise.
	* nis/nss_compat/compat-spwd.c: Likewise.
	* nis/nss_nis/nis-alias.c: Likewise.
	* nis/nss_nis/nis-ethers.c: Likewise.
	* nis/nss_nis/nis-grp.c: Likewise.
	* nis/nss_nis/nis-hosts.c: Likewise.
	* nis/nss_nis/nis-network.c: Likewise.
	* nis/nss_nis/nis-proto.c: Likewise.
	* nis/nss_nis/nis-pwd.c: Likewise.
	* nis/nss_nis/nis-rpc.c: Likewise.
	* nis/nss_nis/nis-service.c: Likewise.
	* nis/nss_nis/nis-spwd.c: Likewise.
	* nis/nss_nisplus/nisplus-alias.c: Likewise.
	* nis/nss_nisplus/nisplus-ethers.c: Likewise.
	* nis/nss_nisplus/nisplus-grp.c: Likewise.
	* nis/nss_nisplus/nisplus-hosts.c: Likewise.
	* nis/nss_nisplus/nisplus-initgroups.c: Likewise.
	* nis/nss_nisplus/nisplus-network.c: Likewise.
	* nis/nss_nisplus/nisplus-proto.c: Likewise.
	* nis/nss_nisplus/nisplus-pwd.c: Likewise.
	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
	* nis/nss_nisplus/nisplus-service.c: Likewise.
	* nis/nss_nisplus/nisplus-spwd.c: Likewise.
	* nis/ypclnt.c: Likewise.
	* nptl/libc_pthread_init.c: Likewise.
	* nss/getXXbyYY.c: Likewise.
	* nss/getXXent.c: Likewise.
	* nss/getXXent_r.c: Likewise.
	* nss/nss_db/db-XXX.c: Likewise.
	* nss/nss_db/db-netgrp.c: Likewise.
	* nss/nss_db/nss_db.h: Likewise.
	* nss/nss_files/files-XXX.c: Likewise.
	* nss/nss_files/files-alias.c: Likewise.
	* nss/nsswitch.c: Likewise.
	* posix/regex_internal.h: Likewise.
	* posix/wordexp.c: Likewise.
	* pwd/fgetpwent.c: Likewise.
	* resolv/res_hconf.c: Likewise.
	* resolv/res_libc.c: Likewise.
	* shadow/fgetspent.c: Likewise.
	* shadow/lckpwdf.c: Likewise.
	* shadow/sgetspent.c: Likewise.
	* socket/opensock.c: Likewise.
	* stdio-common/reg-modifier.c: Likewise.
	* stdio-common/reg-printf.c: Likewise.
	* stdio-common/reg-type.c: Likewise.
	* stdio-common/vfprintf.c: Likewise.
	* stdio-common/vfscanf.c: Likewise.
	* stdlib/abort.c: Likewise.
	* stdlib/cxa_atexit.c: Likewise.
	* stdlib/fmtmsg.c: Likewise.
	* stdlib/random.c: Likewise.
	* stdlib/setenv.c: Likewise.
	* string/strsignal.c: Likewise.
	* sunrpc/auth_none.c: Likewise.
	* sunrpc/bindrsvprt.c: Likewise.
	* sunrpc/create_xid.c: Likewise.
	* sunrpc/key_call.c: Likewise.
	* sunrpc/rpc_thread.c: Likewise.
	* sysdeps/arm/backtrace.c: Likewise.
	* sysdeps/generic/ldsodefs.h: Likewise.
	* sysdeps/generic/stdio-lock.h: Likewise.
	* sysdeps/generic/unwind-dw2-fde.c: Likewise.
	* sysdeps/i386/backtrace.c: Likewise.
	* sysdeps/ieee754/ldbl-opt/nldbl-compat.c: Likewise.
	* sysdeps/m68k/backtrace.c: Likewise.
	* sysdeps/mach/hurd/cthreads.c: Likewise.
	* sysdeps/mach/hurd/dirstream.h: Likewise.
	* sysdeps/mach/hurd/malloc-machine.h: Likewise.
	* sysdeps/nptl/malloc-machine.h: Likewise.
	* sysdeps/nptl/stdio-lock.h: Likewise.
	* sysdeps/posix/dirstream.h: Likewise.
	* sysdeps/posix/getaddrinfo.c: Likewise.
	* sysdeps/posix/system.c: Likewise.
	* sysdeps/pthread/aio_suspend.c: Likewise.
	* sysdeps/s390/s390-32/backtrace.c: Likewise.
	* sysdeps/s390/s390-64/backtrace.c: Likewise.
	* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
	* sysdeps/unix/sysv/linux/if_index.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutent_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutid_r.c: Likewise.
	* sysdeps/unix/sysv/linux/s390/s390-32/getutline_r.c: Likewise.
	* sysdeps/unix/sysv/linux/shm-directory.c: Likewise.
	* sysdeps/unix/sysv/linux/system.c: Likewise.
	* sysdeps/x86_64/backtrace.c: Likewise.
	* time/alt_digit.c: Likewise.
	* time/era.c: Likewise.
	* time/tzset.c: Likewise.
	* wcsmbs/wcsmbsload.c: Likewise.
	* nptl/tst-initializers1.c (do_test): Refer to <libc-lock.h>
	instead of <bits/libc-lock.h> in comment. 
						
						
					 
					
						2015-09-08 21:11:03 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						0f87de79e9 
					 
					
						
						
							
							vfprintf: Remove label name switching for the jump table  
						
						 
						
						... 
						
						
						
						Different labels are no longer needed because the tables are now in
separate functions. 
						
						
					 
					
						2015-05-21 16:48:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						f8194fa6f9 
					 
					
						
						
							
							vfprintf: Introduce printf_positional function  
						
						 
						
						... 
						
						
						
						This splits a considerable chunk of code from the main vfprintf
function.  This will make it easier to remove the use of extend_alloca
from the positional argument handling code. 
						
						
					 
					
						2015-05-21 16:46:46 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						f0f98189d8 
					 
					
						
						
							
							vfprintf: Move jump table definition and the macros out of function  
						
						 
						
						... 
						
						
						
						The second jump table will be moved to a separate function
in the next commit. 
						
						
					 
					
						2015-05-21 16:45:09 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						1597b7447a 
					 
					
						
						
							
							vfprintf: Define WORK_BUFFER_SIZE  
						
						 
						
						... 
						
						
						
						This constant will allow us to refer to the number of elements in
work_buffer across a function call boundary. 
						
						
					 
					
						2015-03-06 11:06:33 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						627e7a5f5b 
					 
					
						
						
							
							vfprintf: Introduce JUMP_TABLE_BASE_LABEL  
						
						 
						
						... 
						
						
						
						This makes the offset handling more explicit and avoids
cross-references between the jump tables. 
						
						
					 
					
						2015-03-06 10:29:49 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Florian Weimer 
							
						 
					 
					
						
						
							
						
						d176a41a62 
					 
					
						
						
							
							vfprintf: Introduce THOUSANDS_SEP_T  
						
						 
						
						... 
						
						
						
						This avoids preprocessor conditionals in function declarations. 
						
						
					 
					
						2015-03-06 10:26:58 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						b168057aaa 
					 
					
						
						
							
							Update copyright dates with scripts/update-copyrights.  
						
						 
						
						
						
						
					 
					
						2015-01-02 16:29:47 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeff Law 
							
						 
					 
					
						
						
							
						
						a5357b7ce2 
					 
					
						
						
							
							CVE-2012-3406: Stack overflow in vfprintf [BZ  #16617 ]  
						
						 
						
						... 
						
						
						
						A larger number of format specifiers coudld cause a stack overflow,
potentially allowing to bypass _FORTIFY_SOURCE format string
protection. 
						
						
					 
					
						2014-12-15 10:09:33 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andreas Schwab 
							
						 
					 
					
						
						
							
						
						4fdfe821e2 
					 
					
						
						
							
							Correctly handle %p in wprintf (BZ  #16890 )  
						
						 
						
						
						
						
					 
					
						2014-05-01 20:42:08 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Will Newton 
							
						 
					 
					
						
						
							
						
						c15cf13a8a 
					 
					
						
						
							
							Revert "Fix _IO_JUMPS_OFFSET -Wundef warnings"  
						
						 
						
						... 
						
						
						
						This reverts commit f7efd7c3df . 
						
						
					 
					
						2014-03-17 20:37:42 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Will Newton 
							
						 
					 
					
						
						
							
						
						f7efd7c3df 
					 
					
						
						
							
							Fix _IO_JUMPS_OFFSET -Wundef warnings  
						
						 
						
						... 
						
						
						
						ChangeLog:
2014-03-17  Will Newton  <will.newton@linaro.org >
	* libio/genops.c: Check whether
	_IO_JUMPS_OFFSET is defined with #ifdef rather
	than #if.
	* libio/libioP.h: Likewise.
	* stdio-common/vfprintf.c: Likewise. 
						
						
					 
					
						2014-03-17 16:05:23 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ondřej Bílka 
							
						 
					 
					
						
						
							
						
						94c8a4bc57 
					 
					
						
						
							
							Fix integer overflow in vfwprintf. Fixes bug 14286.  
						
						 
						
						
						
						
					 
					
						2014-01-07 12:05:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Allan McRae 
							
						 
					 
					
						
						
							
						
						d4697bc93d 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights  
						
						 
						
						
						
						
					 
					
						2014-01-01 22:00:23 +10:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Eric Biggers 
							
						 
					 
					
						
						
							
						
						3d110c7c6e 
					 
					
						
						
							
							Fix fwrite() reading beyond end of buffer in error path  
						
						 
						
						... 
						
						
						
						Partially revert commits 2b766585f9  and
de2fd463b1 , which were intended to fix BZ#11741
but caused another, likely worse bug, namely that fwrite() and fputs() could,
in an error path, read data beyond the end of the specified buffer, and
potentially even write this data to the file.
Fix BZ#11741 properly by checking the return value from _IO_padn() in
stdio-common/vfprintf.c. 
						
						
					 
					
						2013-10-11 22:29:38 +05:30  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						2e09a79ada 
					 
					
						
						
							
							Avoid use of "register" as optimization hint.  
						
						 
						
						
						
						
					 
					
						2013-06-07 22:24:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Paul Pluzhnikov 
							
						 
					 
					
						
						
							
						
						e1b42695ea 
					 
					
						
						
							
							Replace __builtin_expect(..., 0) with __glibc_unlikely().  
						
						 
						
						
						
						
					 
					
						2013-03-05 21:38:19 -08:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Paul Pluzhnikov 
							
						 
					 
					
						
						
							
						
						cdcf361fda 
					 
					
						
						
							
							* stdio-common/vfprintf.c (vfprintf): Check malloc return; don't  
						
						 
						
						... 
						
						
						
						call free(NULL). 
						
						
					 
					
						2013-03-05 13:44:33 -08:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						70d9946a44 
					 
					
						
						
							
							Remove __ptrvalue, __bounded and __unbounded.  
						
						 
						
						
						
						
					 
					
						2013-02-13 23:30:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Joseph Myers 
							
						 
					 
					
						
						
							
						
						568035b787 
					 
					
						
						
							
							Update copyright notices with scripts/update-copyrights.  
						
						 
						
						
						
						
					 
					
						2013-01-02 19:05:09 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Siddhesh Poyarekar 
							
						 
					 
					
						
						
							
						
						2b766585f9 
					 
					
						
						
							
							printf should return negative value on error  
						
						 
						
						... 
						
						
						
						[BZ #11741 ]
Fixed bug where printf and family may return a spurious success when
printing padded formats. 
						
						
					 
					
						2012-11-16 19:13:11 +05:30  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Jeff Law 
							
						 
					 
					
						
						
							
						
						715a900c90 
					 
					
						
						
							
							2012-09-28  Andreas Schwab  <schwab@linux-m68k.org>  
						
						 
						
						... 
						
						
						
						[BZ #6530 ]
        * stdio-common/vfprintf.c (process_string_arg): Revert
        2000-07-22 change.
2011-09-28  Jonathan Nieder  <jrnieder@gmail.com >
        * stdio-common/Makefile (tst-sprintf-ENV): Set environment
        for testcase.
        * stdio-common/tst-sprintf.c: Include <locale.h>
        (main): Test sprintf's handling of incomplete multibyte
        characters. 
						
						
					 
					
						2012-09-28 12:49:51 -06:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andreas Schwab 
							
						 
					 
					
						
						
							
						
						d18ea0c5e6 
					 
					
						
						
							
							Remove use of INTDEF/INTUSE in libio  
						
						 
						
						
						
						
					 
					
						2012-05-24 23:06:20 +02:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								David S. Miller 
							
						 
					 
					
						
						
							
						
						135ffda8b8 
					 
					
						
						
							
							Tighten up vfprintf width, precision, and total length overflow handling.  
						
						 
						
						... 
						
						
						
						With help from Paul Eggert, Carlos O'Donell, and Roland McGrath.
	* stdio-common/printf-parse.h (read_int): Change return type to
	'int', return -1 on INT_MAX overflow.
	* stdio-common/vfprintf.c (vfprintf): Validate width and precision
	against overflow of INT_MAX.  Set errno to EOVERFLOW when 'done'
	overflows INT_MAX.  Check for overflow of in-format-string precision
	values properly.  Use EOVERFLOW rather than ERANGE throughout.  Use
	SIZE_MAX not INT_MAX for integer overflow test.
	* stdio-common/printf-parsemb.c: If read_int signals an overflow,
	skip the construct in the format string but do not record anything.
	* stdio-common/bug22.c: Adjust to test both width/prevision
	INT_MAX overflow as well as total length INT_MAX overflow.  Check
	explicitly for proper errno values. 
						
						
					 
					
						2012-04-02 14:31:19 -07:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								H.J. Lu 
							
						 
					 
					
						
						
							
						
						eb96ffb07d 
					 
					
						
						
							
							Move stdio-common/_itoa.h to sysdeps/generic  
						
						 
						
						
						
						
					 
					
						2012-03-20 16:00:23 -07:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						f72ed77d71 
					 
					
						
						
							
							Formatting fixes  
						
						 
						
						
						
						
					 
					
						2012-03-06 21:45:53 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kees Cook 
							
						 
					 
					
						
						
							
						
						fa0355175d 
					 
					
						
						
							
							2012-03-02  Kees Cook  <keescook@chromium.org>  
						
						 
						
						... 
						
						
						
						* stdio-common/vfprintf.c (vfprintf): add missing errno settings. 
						
						
					 
					
						2012-03-05 10:18:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Kees Cook 
							
						 
					 
					
						
						
							
						
						7c1f4834d3 
					 
					
						
						
							
							2012-03-02  Kees Cook  <keescook@chromium.org>  
						
						 
						
						... 
						
						
						
						[BZ #13656 ]
        * stdio-common/vfprintf.c (vfprintf): Check for nargs overflow and
        possibly allocate from heap instead of stack.
        * stdio-common/bug-vfprintf-nargs.c: New file.
        * stdio-common/Makefile (tests): Add nargs overflow test. 
						
						
					 
					
						2012-03-05 10:17:22 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Paul Eggert 
							
						 
					 
					
						
						
							
						
						59ba27a63a 
					 
					
						
						
							
							Replace FSF snail mail address with URLs.  
						
						 
						
						
						
						
					 
					
						2012-02-09 23:18:22 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						a4647e727a 
					 
					
						
						
							
							Fix extension of array in extended printf format handling  
						
						 
						
						
						
						
					 
					
						2011-12-17 21:27:25 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						aec84f5395 
					 
					
						
						
							
							Set stream errors in more cases  
						
						 
						
						... 
						
						
						
						Also avoid unnecessarily setting errno when testing for TTY. 
						
						
					 
					
						2011-05-21 00:42:06 -04:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Petr Baudis 
							
						 
					 
					
						
						
							
						
						84a4211850 
					 
					
						
						
							
							Fix allocation when handling positional parameters in printf.  
						
						 
						
						
						
						
					 
					
						2011-02-20 07:59:49 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						07eb4b716e 
					 
					
						
						
							
							Always allow overwriting printf modifiers etc.  
						
						 
						
						
						
						
					 
					
						2010-12-24 19:28:32 -05:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Andreas Schwab 
							
						 
					 
					
						
						
							
						
						199eb0de8d 
					 
					
						
						
							
							Check for integer overflows in formatting functions  
						
						 
						
						
						
						
					 
					
						2009-09-29 06:11:59 -07:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						9d26efa90c 
					 
					
						
						
							
							* stdio-common/printf.h (struct printf_info): Add user element.  
						
						 
						
						... 
						
						
						
						New types printf_arginfo_size_function, printf_va_arg_function.
	Declare register_printf_specifier, register_printf_modifier,
	register_printf_type.
	* stdio-common/printf-parse.h (struct printf_spec): Add size element.
	(union printf_arg): Add pa_user element.
	Adjust __printf_arginfo_table type.
	Add __printf_va_arg_table, __printf_modifier_table,
	__handle_registered_modifier_mb, and __handle_registered_modifier_wc
	declarations.
	* stdio-common/printf-parsemb.c: Recognize registered modifiers.
	If registered arginfo call failed try normal specifier.
	* stdio-common/printf-prs.c: Pass additional parameter to arginfo
	function.
	* stdio-common/Makefile (routines): Add reg-modifier and reg-type.
	* stdio-common/Versions: Export register_printf_modifier,
	register_printf_type, and register_printf_specifier for GLIBC_2.10.
	* stdio-common/reg-modifier.c: New file.
	* stdio-common/reg-type.c: New file.
	* stdio-common/reg-printf.c (__register_printf_specifier): New
	function.  Mostly the old __register_printf_function function but
	uses locking and type of third parameter changed.
	(__register_printf_function): Implement using
	__register_printf_specifier.
	* stdio-common/vfprintf.c (vfprintf): Collect argument sizes in
	calls to arginfo functions.  Allocate enough memory for user-defined
	types.  Call new va_arg functions to get user-defined types.
	Try installed handlers even for existing format specifiers first. 
						
						
					 
					
						2009-04-11 05:34:20 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						1d498daa95 
					 
					
						
						
							
							Simplified code and possible copy problem fixed.  
						
						 
						
						
						
						
					 
					
						2009-04-10 03:56:06 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						e9b4d069c1 
					 
					
						
						
							
							* stdio-common/vfprintf.c (vfprintf): Slightly more compact code.  
						
						 
						
						
						
						
					 
					
						2009-04-10 02:51:29 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						3703468e36 
					 
					
						
						
							
							[BZ  #6698 ]  
						
						 
						
						... 
						
						
						
						* stdio-common/_i18n_number.h (_i18n_number_rewrite): Take additional
	parameter for end of buffer.  If temporary copy is too large use
	malloc.
	* stdio-common/vfprintf.c: Adjust for _i18n_number_rewrite
	interface change.
	* stdio-common/printf_fp.c (__printf_fp): Likewise..  Account for
	string rewrite when allocating buffer. 
						
						
					 
					
						2008-07-25 23:39:16 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						9f558b8051 
					 
					
						
						
							
							* locale/setlocale.c (setlocale): Take the setlocale lock earlier.  
						
						 
						
						
						
						
					 
					
						2008-07-20 08:49:18 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						2486b4965b 
					 
					
						
						
							
							* stdio-common/vfprintf.c (_IO_helper_overflow): In case _IO_sputn  
						
						 
						
						... 
						
						
						
						doesn't manage to write anything, fail. 
						
						
					 
					
						2008-07-15 18:13:22 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						43f6bec195 
					 
					
						
						
							
							* stdio-common/vfprintf.c (vfprintf): Correct overflow test.  
						
						 
						
						
						
						
					 
					
						2008-03-30 05:39:35 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						b4354cf420 
					 
					
						
						
							
							[BZ  #5424 , BZ  #5428 , BZ  #5451 ]  
						
						 
						
						... 
						
						
						
						2007-12-08  Ulrich Drepper  <drepper@redhat.com >
	[BZ #5424 ]
	* stdio-common/vfprintf.c: Do not overflow when adding to done.
	* stdio-common/Makefile (tests): Add bug22.
	* stdio-common/bug22.c: New file.
	[BZ #5451 ]
	* time/getdate.c: Fix filling in default values.
	* time/bug-getdate1.c: New file.
	* time/Makefile: Add rules to build and run bug-getdate1.
	* iconvdata/ebcdic-is-friss.c: Use 8bit-gap instead of 8bit-generic.
	* iconvdata/ebcdic-es.c: Likewise.
	* iconvdata/ebcdic-es-a.c: Likewise.
	* iconvdata/ebcdic-uk.c: Likewise.
	* iconvdata/iso8859-16.c: Likewise.
	* iconvdata/viscii.c: Likewise.
	* iconvdata/iso8859-9e.c: Likewise.
	* iconvdata/Makefile: Adjust appropriately.
	[BZ #5428 ]
	* wcsmbs/wchar.h: Unconditionally undefine __need_mbstate and
	__need_wint_t.
	* iconvdata/gconv-modules: Likewise. 
						
						
					 
					
						2007-12-10 01:43:40 +00:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Ulrich Drepper 
							
						 
					 
					
						
						
							
						
						9ca230d62f 
					 
					
						
						
							
							* stdio-common/vfprintf.c (vfprintf): Compute necessary buffer size  
						
						 
						
						... 
						
						
						
						with size_t type.
	* stdio-common/printf_fp.c (__print_fp): Change chars_needed type to
	size_t.  Add casts where needed. 
						
						
					 
					
						2007-11-06 21:38:49 +00:00