summaryrefslogtreecommitdiffstats
path: root/lib/libc/stdio
Commit message (Collapse)AuthorAgeFilesLines
* Document that we will core-dump on getting a NULL pointer.eivind1998-09-281-0/+4
|
* Apply patch to properly sscanf(3) when there is whitespace in the formatobrien1998-09-251-7/+2
| | | | | | | | | | | | | string. From the submitted patch: Credit for patch: Chris Torek <torek@bsdi.com> Tod Miller <millert@openbsd.org> This makes us in line with SunOS 4.1.3_U1, Solaris 2.6, OpenBSD 2.3, HP-UX 10.20, Irix 5.3. The previous behavior was in line with Ultrix 4.4. PR: bin/7970 Submitted by: Niall Smart nialls@euristix.ie
* Replace memory leaking instances of realloc with non-leaking reallocf.imp1998-09-164-8/+8
| | | | | | | | | | | In some cases replace if (a == null) a = malloc(x); else a = realloc(a, x); with simple reallocf(a, x). Per ANSI-C, this is guaranteed to be the same thing. I've been running these on my system here w/o ill effects for some time. However, the CTM-express is at part 6 of 34 for the CAM changes, so I've not been able to do a build world with the CAM in the tree with these changes. Shouldn't impact anything, but...
* Replace my original asprintf() and vasprintf() hacks with somethingpeter1998-07-084-142/+99
| | | | | | | | more cleanly integrated with stdio. This should be faster and cleaner since it doesn't memcpy() the data into a seperate buffer. This lets stdio allocate and manage the buffer and then hand it over to the user. Obtained from: Todd Miller <Todd.Miller@courtesan.com> via OpenBSD
* Spelling corrections.jkoshy1998-06-061-1/+1
| | | | | PR: 6868 Submitted by: Josh Gilliam <josh@quick.net>
* Remote the NetBSD kludge for vfprintf.cjb1998-05-081-9/+2
|
* Don't assign the va_list variable 'ap' directly to the argtable becausejb1998-05-081-19/+18
| | | | | va_list is not a pointer on alpha. Instead, use the va_arg() macro to return the address that is stored in the argtable.
* Remove leading underscores for the functions (weak symbols here) thatjb1998-05-051-4/+7
| | | | POSIX defines.
* Fix a nasty flaw as a result of using the arc4random() pre-seeding ofpeter1998-04-141-2/+4
| | | | | | | | leading XXX's. It could wrap an uppercase character through chars like: [ \ ] ^ _ ` in between Z and a. The backslash and back tick might be particularly nasty in a shell script context. Also, since we've been using upper-case generated values for a while now, go with the flow and use them in the pathname search rotation.
* Add FILE locking stubs for libc.jb1998-04-1128-337/+211
| | | | | | | | Change the FILE locking to support kernel threads when linked with libpthread (which you haven't see yet). This requires that libc become thread-safe and thread-aware, testing __isthreaded before attempting to do lock/unlock calls. The impact on non-threaded programs is minor. This change works with libc_r, so it's the best compromise.
* Fixed disordering and inconsistent style in previous commit.bde1998-03-121-3/+2
|
* Added #include <string.h> to get prototypes.jb1998-03-092-1/+3
|
* Fixed a few ancient typos, added a little missing stuff, and updatedmckay1998-03-081-20/+23
| | | | | | references to abort() in light of POSIX mandated behaviour. I'm still not 100% happy with much of the wording, but it's better than it was.
* Fixed uninitialized pointer in previous commit. mktemp() was broken.bde1998-03-031-5/+6
| | | | | | I noticed cvs core dumps and uncleaned cvs temporary files in /tmp. Fixed ANSIisms.
* Many security improvements from OpenBSD:imp1998-02-133-35/+113
| | | | | | | | | | | implement mkdtemp improve man page for mk*temp use arc4random to seed extra XXX's randomly Optionally warn of unsafe mktemp uses From various commits by theo de raadt and Todd Miller. Obtained from: OpenBSD This should go into 2.2 after a testing period.
* size_t -> unsignedache1998-01-041-3/+3
| | | | | in arguments length INT_MAX overflow check Suggested-by: bde
* 1. EOF was returned when the buffer size was larger than INT_MAX. Thisache1998-01-012-10/+10
| | | | | | | | | | case has very little to do with the output size being larger than INT_MAX. 2. The new #include of <limits.h> was disordered. 3. The new declaration of `on' was disordered (integer types go together). 4. Testing an unsigned value for > 0 was fishy. Submitted by: bde
* Add overflow checks: if output size becomes bigger than INT_MAX,ache1997-12-251-2/+13
| | | | just return EOF
* Correct type of stored argument place (from previous fix)ache1997-12-242-4/+4
|
* 1) Restore back comment about snprintf()ache1997-12-241-7/+10
| | | | | 2) Optimize string buffer copy to call memcpy() and update pointers only for count > 0, it makes snprintf(NULL, 0, ...) more efficient
* Return back to BSD snprintf semantics which recent C9x standard adoptsache1997-12-243-21/+23
| | | | | | | | | | instead of Singe Unix, thanx Bruce for explaining, I am not realize standards war was there. But now, fix n == 0 case to not return error and fix check for too big n. Things left to do: check for overflow in arguments.
* 1) Oops! Insert again if (n == 0) return 0.ache1997-12-242-10/+10
| | | | | | | | | | | | | | | | | | | Final word is Bruce's quote: C9x specifies the BSD4.4-Lite behaviour: [#3] ... Thus, the null-terminated output has been completely written if and only if the returned value is less than n. It means that if we not have any null-terminated output as for n == 0 we can't return value less than n, so we forced to return value equal to n i.e. 0 The next good thing is glibc compatibility, of course. 2) Do check for too big n in machine-independent way. 3) Minor optimization assuming EOF is < 0
* Back out part related to "return 0 if n == 0" and return EOF as before.ache1997-12-242-6/+2
| | | | | | | | | | | The main argument is that it is impossible to determine if %n evaluated or not when snprintf return 0, because it can happens for both n == 0 and n == 1. Although EOF here is good indication of the end of process, if n is decreased in the loop... Since it is already supposed in many places that EOF *is* negative, f.e. from Single Unix specs for snprintf "return ... a negative value if an output error was encountered" this not makes situation worse.
* Fix snprintf(...%n...)ache1997-12-241-5/+9
| | | | | | to pass not more than buffer size to %n agrument, old variant always assume infinite buffer. %n is for actually transmitted characters, not for planned ones.
* Remove wrong comment about snprintf:ache1997-12-241-5/+4
| | | | | | | | | "return the number of bytes needed, rather the number used" According to Single Unix specs: Upon successful completion, these functions return the number of bytes transmitted excluding the terminating null
* snprintf return value fixes to conform Single Unix specs:ache1997-12-242-6/+16
| | | | | | | | | | | | | | | | | | | | 1) if buffer size is smaller than arguments size, return buffer size, not arguments size as before. 2) if buffer size is 0, return 0, not EOF as before. (now it is compatible with Linux and Apache implementations too). NOTE: Single Unix specs says: If the value of n {buffer size} is zero on a call to snprintf(), an unspecified value less than 1 is returned. It means we can't return EOF since EOF can take *any* value in general not especially < 1. Better variant will be return -1 (it is less then 1 and different with n == 1 case) but -1 value is already occuped by EOF in our implementation, so we can't distinguish true IO error in that case. So 0 here is only possible case still conforming to Single Unix specs.
* Comment that long double is poorly implemented, not that it is unimplemented.bde1997-12-191-2/+3
|
* Fixed long double formats. They were mostly not implemented exceptbde1997-11-231-4/+7
| | | | | | | | | | | on systems where long doubles are just doubles. FreeBSD hasn't been such a system since it started using gcc-2.5 many years ago. The fix is of low quality. It loses precision. scanf() of long doubles doesn't seem to be used much, but gdb-4.16 uses %Lg format in its expression parser if it thinks that the system supports printf'ing of long doubles. The symptom was that floating point literals were usually interpreted to be 0.0.
* Sorted lists.bde1997-10-211-3/+5
|
* Removed the subdirectory paths from the definitions of MAN[1-9]. Theybde1997-10-151-7/+4
| | | | | were a workaround for limitations in bsd.man.mk that were fixed about 2 years ago.
* Rework previous commit.. I was confused by the number of diffs in the PRpeter1997-07-061-8/+29
| | | | | | | | | | | | | | | | | and forgot what I was trying to do originally and accidently zapped a feature. :-] The problem is that we are converting a counted buffer in a malloc pool into a null terminated C-style string. I was calling realloc originally to shrink the buffer to the desired size. If realloc failed, we still returned the valid buffer - the only thing wrong was it was a tad too large. The previous commit disabled this. This commit now handles the three cases.. 1: the buffer is exactly right for the null byte to terminate the string (we don't call realloc). 2: it's got h.left = 0, so we must expand it to make room. If realloc fails here, it's fatal. 3: if there's too much room, we realloc to shrink it - a failed realloc is not fatal, we use the original buffer which is still valid.
* Fix off-by-one errorpeter1997-07-061-4/+6
| | | | | PR: 3451 Submitted by: Tim Vanderhoek <ac199@hwcn.org>
* Add 64 bit int support to scanf()jkh1997-07-012-14/+32
| | | | | PR: 2080 Submitted by: David Dawes <dawes@rf900.physics.usyd.edu.au>
* Changed all paths to be relative to src/lib instead of src/lib/libcjb1997-05-031-2/+5
| | | | | | | | | | so that all these makefiles can be used to build libc_r too. Added .if ${LIB} == "c" tests to restrict man page builds to libc to avoid needlessly building them with libc_r too. Split libc Makefile into Makefile and Makefile.inc to allow the libc_r Makefile to include Makefile.inc too.
* Fixed #include and/or prototype bugs in synopsis.bde1997-04-134-6/+6
|
* Fix raceguido1997-04-071-2/+2
| | | | Obtained from: Keith Bostic
* Eliminate yet one function call when locale not usedache1997-04-041-3/+4
|
* Speedup in case locale not usedache1997-04-041-7/+16
|
* The w+ entry description was misformatted.mpp1997-03-271-1/+1
| | | | Pointed out by: bde
* FIxed arg types (mostly missing consts) in synopsis.bde1997-03-191-1/+1
|
* Merge from Lite2peter1997-03-111-2/+2
|
* This commit was generated by cvs2svn to compensate for changes in r23658,peter1997-03-111-17/+17
|\ | | | | | | which included commits to RCS files with non-trunk default branches.
| * Import CSRG 4.4BSD-Lite2 lib/libc onto vendor branchpeter1997-03-112-19/+19
| |
* | Fixed handling of input failure by the scanf family.bde1997-03-031-3/+11
| | | | | | | | | | | | | | | | | | | | | | - 0 was returned instead of EOF when an input failure occured while skipping white-space after 0 assignments. This fixes PR2606. The diagnosis in PR2606 is wrong. - EOF was returned instead of 0 when an input failure occurred after zero assignments and nonzero suppressed assignments. - EOF was spelled -1. This should be in 2.2.
* | Revert $FreeBSD$ to $Id$peter1997-02-2258-58/+58
| |
* | Add XXX comment describing potential memset non-portable issueache1997-02-051-0/+3
| | | | | | | | Nitpicked-by: joerg
* | Sort cross references.wosch1997-01-207-12/+12
| |
* | Use collate for national [a-z]-like rangesache1997-01-161-8/+13
| | | | | | | | Should go in 2.2
* | The following patch to lib/libc/stdio implements positional arguments injkh1997-01-142-22/+414
| | | | | | | | | | | | | | | | | | a manner consistent with other implementations. Its done in a way that adds only a tiny amount of overhead when positional arguments are not used. I also have a test program to go with this, but don't know where it belongs in the tree. Submitted-By: Bill Fenner <fenner@FreeBSD.ORG>
* | Make the long-awaited change from $Id$ to $FreeBSD$jkh1997-01-1458-58/+58
| | | | | | | | | | | | | | | | This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long. Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
OpenPOWER on IntegriCloud