Commit graph

41 commits

Author SHA1 Message Date
Rich Felker
0d5df2df4f wordexp must set the we_offs entries of we_wordv to null pointers 2012-04-16 13:25:05 -04:00
Rich Felker
bef7a85e45 fix crash in wordfree if we_offs is not initialized by the caller
I'm not sure if it's legal for wordexp to modify this field, but this
is the only easy/straightforward fix, and applications should not
care. if it's an issue, i can work out a different (but more complex)
solution later.
2012-04-16 13:03:22 -04:00
Rich Felker
ca19774c91 implement a64l and l64a (legacy xsi stuff) 2012-03-01 23:43:31 -05:00
Rich Felker
00b883a955 fix (hopefully) PTRACE_TRACEME (command 0) argument handling 2012-02-23 13:08:47 -05:00
Rich Felker
f96eb335e1 fix get_current_dir_name behavior 2012-02-17 23:56:28 -05:00
Rich Felker
1611ab0d9b add get_current_dir_name function 2012-02-17 23:10:00 -05:00
Rich Felker
477e72ac4a add legacy futimes and lutimes functions
based on patch by sh4rm4. these functions are deprecated; futimens and
utimensat should be used instead in new programs.
2012-01-24 19:50:44 -05:00
Rich Felker
5235a2a5a4 use prlimit syscall for getrlimit/setrlimit
this allows the full range of 64-bit limit arguments even on 32-bit
systems. fallback to the old syscalls on old kernels that don't
support prlimit.
2012-01-20 22:30:52 -05:00
Rich Felker
26f38328d6 add prlimit syscall wrapper 2012-01-20 22:10:47 -05:00
Rich Felker
07065210ca alias basename to glibc name for it, to meet abi goals
note that regardless of the name used, basename is always conformant.
it never takes on the bogus gnu behavior, unlike glibc where basename
is nonconformant when declared manually without including libgen.h.
2012-01-18 23:28:48 -05:00
Rich Felker
d431d4546e fix ptrace (maybe) 2011-09-16 10:13:00 -04:00
Rich Felker
71f7a3c2ce implement ptrace syscall wrapper (untested) 2011-09-15 13:03:13 -04:00
Rich Felker
28af39fe42 remove some stray trailing space characters 2011-09-13 09:53:41 -04:00
Rich Felker
544ee752cd fix some bugs in setxid and update setrlimit to use __synccall
setrlimit is supposed to be per-process, not per-thread, but again
linux gets it wrong. work around this in userspace. not only is it
needed for correctness; setxid also depends on the resource limits for
all threads being the same to avoid situations where temporarily
unlimiting the limit succeeds in some threads but fails in others.
2011-07-30 08:19:31 -04:00
Rich Felker
c0fe5b9da9 check for fd exhaustion in forkpty
we cannot report failure after forking, so the idea is to ensure prior
to fork that fd 0,1,2 exist. this will prevent dup2 from possibly
hitting a resource limit and failing in the child process. fcntl
rather than dup2 is used prior to forking to avoid race conditions.
2011-07-22 00:25:56 -04:00
Rich Felker
d40e344f7b incorrect check for open failure in openpty function
-1, not 0, indicates failure
2011-07-22 00:23:36 -04:00
Rich Felker
6250c0be4b wordexp cannot use we_offs unless WRDE_DOOFFS flag is set
previously, a potentially-indeterminate value from we_offs was being
used, resulting in wrong we_wordc and subsequent crashes in the
caller.
2011-06-25 18:54:33 -04:00
Rich Felker
d43ff110bc fix memory leak on failure in realpath 2011-06-18 07:41:14 -04:00
Rich Felker
9a59faab3c add useless, obsolescent function ulimit 2011-05-29 14:09:03 -04:00
Rich Felker
10d7561db5 properly create new session/controlling terminal in forkpty 2011-04-20 21:01:42 -04:00
Rich Felker
4921ce0867 implement (nonstandard) forkpty 2011-04-20 20:55:13 -04:00
Rich Felker
145c05345d block cancellation in wordexp, handle more errors 2011-04-19 23:42:56 -04:00
Rich Felker
f0fc95d439 avoid malloc of potentially-large string in wordexp 2011-04-19 23:37:57 -04:00
Rich Felker
df9e11bb06 protect ftw and nftw against cancellation 2011-04-18 21:17:03 -04:00
Rich Felker
d2c604d5a4 protect syslog against cancellation
these functions are allowed to be cancellation points, but then we
would have to install cleanup handlers to avoid termination with locks
held.
2011-04-18 21:11:23 -04:00
Rich Felker
e98bdca9df minimal realpath implementation using /proc
clean and simple, but fails when the caller does not have permissions
to open the file for reading or when /proc is not available. i may
replace this with a full implementation later, possibly leaving this
version as an optimization to use when it works.
2011-04-17 17:32:36 -04:00
Rich Felker
90f09a0dde remove stupid debug code in wordexp 2011-04-15 12:07:26 -04:00
Rich Felker
d251c2645c implement wordexp. first try, may be buggy. intended to be safe. 2011-04-15 12:06:34 -04:00
Rich Felker
19c1830eaa simplify syslog, add vsyslog interface (nonstandard)
with datagram sockets, depending on fprintf not to flush the output
early was very fragile; the new version simply uses a small fixed-size
buffer. it could be updated to dynamic-allocate large buffers if
needed, but i can't envision any admin being happy about finding
64kb-long lines in their syslog...
2011-04-13 18:32:33 -04:00
Rich Felker
a77411a50d remove useless SIGPIPE protection from syslog
per the standard, SIGPIPE is not generated for SOCK_DGRAM.
2011-04-13 17:51:45 -04:00
Rich Felker
a444ee3410 fix syslog (corrected SIGPIPE blocking, and using dgram instead of stream)
it actually appears the hacks to block SIGPIPE are probably not
necessary, and potentially harmful. if i can confirm this, i'll remove
them.
2011-04-13 17:24:25 -04:00
Rich Felker
91e836fda7 implement getgrouplist (for initgroups), formerly dummied-out 2011-04-13 09:39:47 -04:00
Rich Felker
750b738e53 add ptsname_r (nonstandard) and split ptsname (standard) to separate file
this eliminates the ugly static buffer in programs that use ptsname_r.
2011-04-13 08:35:32 -04:00
Rich Felker
c546be175c move bswap functions to static inline in byteswap.h 2011-04-12 13:04:17 -04:00
Rich Felker
4f4ba4c02f fix broken bswap_32 2011-04-12 12:18:11 -04:00
Rich Felker
0161244784 remove ugly warning-suppression hack from crypt - this invokes UB! 2011-04-11 01:50:26 -04:00
Rich Felker
9ae8d5fc71 fix all implicit conversion between signed/unsigned pointers
sadly the C language does not specify any such implicit conversion, so
this is not a matter of just fixing warnings (as gcc treats it) but
actual errors. i would like to revisit a number of these changes and
possibly revise the types used to reduce the number of casts required.
2011-03-25 16:34:03 -04:00
Rich Felker
aa398f56fa global cleanup to use the new syscall interface 2011-03-20 00:16:43 -04:00
Rich Felker
bad481266e fix compile failure: legacy cuserid needs to define feature test 2011-02-16 09:30:56 -05:00
Rich Felker
f7eb91e795 fix getrlimit handling on 32-bit systems, and ease porting to 64-bit 2011-02-15 05:42:27 -05:00
Rich Felker
0b44a0315b initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00