summaryrefslogtreecommitdiffstats
path: root/lib
Commit message (Collapse)AuthorAgeFilesLines
* Optimize this a bit better.das2008-01-151-13/+18
| | | | Submitted by: bde (although these aren't all of his changes)
* Remove some now-unused macros.jhb2008-01-151-3/+1
| | | | MFC after: 1 week
* Handle Zip archives that are "multi-part archives with onlykientzle2008-01-151-1/+19
| | | | | | | | | | | | one part" by simply ignoring the marker at the beginning of the file. (Zip archivers reserve four bytes at the beginning of each part of a multi-part archive, if it happens to only require one part, those four bytes get filled with a placeholder that can be ignored.) Thanks to: Marius Nuennerich, for pointing me to a Zip archive that libarchive couldn't handle MFC after: 7 days
* Put back the openpty(3) and ptsname(3) fixes but don't disable ptsname(3)jhb2008-01-152-101/+34
| | | | | on pts(4) devices this time. This fixes the issues while leaving pts(4) enabled on HEAD.
* Back out last commit, since it accidentally broke pts.cperciva2008-01-152-40/+103
| | | | | The security fix will be re-committed soon, hopefully without breaking anything.
* In getttyent(3), if /etc/ttys doesn't end in a newline, don'tdas2008-01-151-1/+1
| | | | | | | freak out and keep trying to expand the buffer until realloc() fails. PR: 114398
* Support uppercase hex digits in cpio archives.kientzle2008-01-151-3/+5
| | | | | Thanks to: Joshua Kwan MFC after: 7 days
* Update the manpage for openpty(3) to account for the recent fixes.jhb2008-01-141-18/+14
| | | | | | | | | | Specifically, remove the BUGS section and note that openpty(3) now always does the various security-related steps. Also, update the error return value section. The PR below is for the original bug rather than the doc updates. MFC after: 1 week PR: bin/9770
* Fix issues which allow snooping on ptys. [08:01]cperciva2008-01-143-105/+42
| | | | | | | Fix an off-by-one error in inet_network(3). [08:02] Security: FreeBSD-SA-08:01.pty Security: FreeBSD-SA-08:02.libc
* Changing 'r' to a size_t in the previous commit turned quicksortdas2008-01-141-4/+5
| | | | | | | into slowsort for some sequences because different parts of the code used 'r' to store two different things, one of which was signed. Clean things up by splitting 'r' into two variables, and use a more meaningful name.
* Implement rintl(), nearbyintl(), lrintl(), and llrintl().das2008-01-1418-35/+383
| | | | Thanks to bde@ for feedback and testing of rintl().
* Since the tar bidder can never get called more than once, itkientzle2008-01-132-23/+59
| | | | | | | | | | | | doesn't need to compensate for this situation. While here, fix a minor longstanding bug that empty tar archives (which begin with at least 512 zero bytes) never properly reported their format. In particular, this fixes the output of: bsdtar tvvf /dev/zero And, of course, a new test to verify that libarchive correctly recognizes the format of such files.
* Update for the 'file' 4.23 import.obrien2008-01-131-4/+23
|
* Use size_t to avoid overflow when sorting arrays larger than 2 GB.das2008-01-132-2/+3
| | | | | PR: 111085 MFC after: 2 weeks
* Plug memory leaks that is observed when argbuf or argspc is used in thedelphij2008-01-121-0/+4
| | | | | | | | context. Submitted by: Michal Vranek <michal.vranek seznam cz> PR: bin/118380 MFC after: 1 month
* - Correct the range check in the double version to catch negative valuesdas2008-01-112-19/+22
| | | | | that would overflow. - Style fixes and improved handling of NaNs suggested by bde.
* Add a feature_present(3) function which checks to see if a named kerneljhb2008-01-103-2/+137
| | | | | | feature is present by checking the kern.features sysctl MIB. MFC after: 1 week
* Add a new file descriptor type for IPC shared memory objects and use it tojhb2008-01-085-335/+161
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | implement shm_open(2) and shm_unlink(2) in the kernel: - Each shared memory file descriptor is associated with a swap-backed vm object which provides the backing store. Each descriptor starts off with a size of zero, but the size can be altered via ftruncate(2). The shared memory file descriptors also support fstat(2). read(2), write(2), ioctl(2), select(2), poll(2), and kevent(2) are not supported on shared memory file descriptors. - shm_open(2) and shm_unlink(2) are now implemented as system calls that manage shared memory file descriptors. The virtual namespace that maps pathnames to shared memory file descriptors is implemented as a hash table where the hash key is generated via the 32-bit Fowler/Noll/Vo hash of the pathname. - As an extension, the constant 'SHM_ANON' may be specified in place of the path argument to shm_open(2). In this case, an unnamed shared memory file descriptor will be created similar to the IPC_PRIVATE key for shmget(2). Note that the shared memory object can still be shared among processes by sharing the file descriptor via fork(2) or sendmsg(2), but it is unnamed. This effectively serves to implement the getmemfd() idea bandied about the lists several times over the years. - The backing store for shared memory file descriptors are garbage collected when they are not referenced by any open file descriptors or the shm_open(2) virtual namespace. Submitted by: dillon, peter (previous versions) Submitted by: rwatson (I based this on his version) Reviewed by: alc (suggested converting getmemfd() to shm_open())
* sem_post() requires to return -1 on error.davidxu2008-01-071-2/+2
|
* Enable both sbrk(2)- and mmap(2)-based memory acquisition methods byjasone2008-01-032-19/+20
| | | | | | | | | default. This has the disadvantage of rendering the datasize resource limit irrelevant, but without this change, legitimate uses of more memory than will fit in the data segment are thwarted by default. Fix chunk_alloc_mmap() to work correctly if initial mapping is not chunk-aligned and mapping extension fails.
* Crib {be,le}{16,32,64}{dec,enc} from src/sys/sys/endian.h and use it insteaddes2008-01-032-57/+164
| | | | | | of home-rolled [iu][248] in the ZIP support code. Approved by: kientzle
* Add an internal utility function to simplify the many, many places wheredes2008-01-033-25/+24
| | | | | | | | the number of bytes read is actually not important as long as we have at least what we ask for. Illustrate its benefits by using it throughout the ZIP support code, except for the few cases where it doesn't apply. Approved by: kientzle
* Extensive improvements to the libarchive_test test program thatkientzle2008-01-0129-789/+3321
| | | | | | | | | | | | | | | | | | | | | | exercises and verifies the libarchive APIs: * Improved error reporting; hexdumps are now provided for many file/memory content differences. * Overall status more clearly counts "tests" and "assertions" * Reference files can now be stored on disk instead of having to be compiled into the test program itself. A couple of tests have been converted to this more natural structure. * Several memory leaks corrected so that leaks within libarchive itself can be more easily detected and diagnosed. * New test: GNU tar compatibility * New test: Zip compatibility * New test: Zero-byte writes to a compressed archive entry * New test: archive_entry_strmode() format verification * New test: mtree reader * New test: write/read of large (2G - 1TB) entries to tar archives (thanks to recent performance work, this test only requires a few seconds) * New test: detailed format verification of cpio odc and newc writers * Many minor additions/improvements to existing tests as well.
* The mtree.5 file has been moved to src/usr.sbin/mtree.kientzle2008-01-012-271/+0
|
* Fix a major chunk-related memory leak in chunk_dealloc_dss_record(). [1]jasone2007-12-311-65/+56
| | | | | | | | Clean up DSS-related locking and protect all pertinent variables with dss_mtx (remove dss_chunks_mtx). This fixes race conditions that could cause chunk leaks. Reported by: [1] kris
* Fix a bug related to sbrk() calls that could cause address space leaks.jasone2007-12-311-186/+268
| | | | | | | | | | | | | | | | | | | | | | | | | This is a long-standing bug, but until recent changes it was difficult to trigger, and even then its impact was non-catastrophic, with the exception of revision 1.157. Optimize chunk_alloc_mmap() to avoid the need for unmapping pages in the common case. Thanks go to Kris Kennaway for a patch that inspired this change. Do not maintain a record of previously mmap'ed chunk address ranges. The original intent was to avoid the extra system call overhead in chunk_alloc_mmap(), which is no longer a concern. This also allows some simplifications for the tree of unused DSS chunks. Introduce huge_mtx and dss_chunks_mtx to replace chunks_mtx. There was no compelling reason to use the same mutex for these disjoint purposes. Avoid memset() for huge allocations when possible. Maintain two trees instead of one for tracking unused DSS address ranges. This allows scalable allocation of multi-chunk huge objects in the DSS. Previously, multi-chunk huge allocation requests failed if the DSS could not be extended.
* - Update build glue for 5.6-20071222rafan2007-12-302-23/+54
|
* Update libarchive to 2.4.10. This includes a number of improvementskientzle2007-12-3031-245/+2118
| | | | | | | | | | | | | | | | | | | | | | | | that I've been working on but put off committing until after the RELENG_7 branch, including: * New manpages: cpio.5 mtree.5 * New archive_entry_strmode() * New archive_entry_link_resolver() * New read support: mtree format * Internal API change: read format auction only runs once * Running the auction only once allowed simplifying a lot of bid logic. * Cpio robustness: search for next header after a sync error * Support device nodes on ISO9660 images * Eliminate a lot of unnecessary copies for uncompressed archives * Corrected handling of new GNU --sparse --posix formats * Correctly handle a zero-byte write to a compressed archive * Fixed memory leaks Many of these improvements were motivated by the upcoming bsdcpio front-end. There have also been extensive improvements to the libarchive_test test harness, which I'll commit separately.
* - Update kvm_deadfiles to be compatible with the new system which has nojeff2007-12-301-44/+87
| | | | | | | | global list of all files. - Mark kvm_getfiles() as broken since the live version exports struct xfile with no filelist at the head and does so incorrectly and the deadfiles version exports struct file with a filelist at the head. It is not known if either version works or complies to the manpage.
* Back out premature commit of previous version.jasone2007-12-281-183/+113
|
* Maintain two trees instead of one (old_chunks --> old_chunks_{ad,szad}) injasone2007-12-281-113/+183
| | | | | | | | | order to support re-use of multi-chunk unused regions within the DSS for huge allocations. This generalization is important to correct function when mmap-based allocation is disabled. Avoid zeroing re-used memory in the DSS unless it really needs to be zeroed.
* Release chunks_mtx for all paths through chunk_dealloc().jasone2007-12-281-1/+4
| | | | Reported by: kris
* Add the 'D' and 'M' run time options, and use them to control whetherjasone2007-12-272-315/+492
| | | | | | | | | | | | | | | | | | memory is acquired from the system via sbrk(2) and/or mmap(2). By default, use sbrk(2) only, in order to support traditional use of resource limits. Additionally, when both options are enabled, prefer the data segment to anonymous mappings, in order to coexist better with large file mappings in applications on 32-bit platforms. This change has the potential to increase memory fragmentation due to the linear nature of the data segment, but from a performance perspective this is mitigated by the use of madvise(2). [1] Add the ability to interpret integer prefixes in MALLOC_OPTIONS processing. For example, MALLOC_OPTIONS=lllllllll can now be specified as MALLOC_OPTIONS=9l. Reported by: [1] rwatson Design review: [1] alc, peter, rwatson
* Fix a typo in regards to the ENOENT error.jhb2007-12-271-1/+1
| | | | | | PR: docs/118929 Submitted by: mymtom of hotmail MFC after: 3 days
* Clean up some of the pts(4) vs pty(4) stuff in grantpt(3) and friends:jhb2007-12-211-22/+23
| | | | | | | | | | - Use PTY* for all pty(4) related constants. - Use PTMX* for all pts(4) related constants. - Consistently use _PATH_DEV PTMX rather than "/dev/ptmx". - Revert 1.7 and properly fix it by using the correct prefix string for pts(4) masters. MFC after: 3 days
* Adjust for OpenPAM Hydrangea.des2007-12-214-7/+8
|
* Invoke revoke(2) on the slave pty in the pts(4) case (new_openpty()) tojhb2007-12-201-1/+13
| | | | | | | | kick off any other users on the device line before using it since openpty(3) is documented to do this. Note that grantpt(3) does not call revoke(2), it only adjusts permissions and ownership. MFC after: 3 days
* call underscore version of pthread_cleanup_pop instead.davidxu2007-12-201-1/+1
|
* Remove vfork() overloading, it is no longer needed.davidxu2007-12-202-11/+0
|
* Grumble. DO declare logbl(), DON'T declare logl() just yet.das2007-12-201-0/+2
| | | | | | | bde is going to commit logl() Real Soon Now. I'm just trying to slow him down with merge conflicts. Noticed by: bde
* Remove the declaration of logl(). The relevant bits haven't beendas2007-12-201-2/+0
| | | | | | | committed yet, but the declaration leaked in when I added nan() and friends. Reported by: pav
* Add missing dependencies on Makefile (fixes NO_CLEAN builds).ru2007-12-191-4/+4
|
* Reduce lock contention for simple cases.imp2007-12-191-16/+22
| | | | | | # this really should be done with pthread_once, but I've debugged this code. Reviewed by: arch@
* Add note about other systems.imp2007-12-191-0/+3
|
* As several people pointed out, I did all the ctype casts the wrongdes2007-12-194-28/+36
| | | | | | | way (not for the first time...) Noticed by: bde, ru ++ MFC after: 1 week
* Move all the xprintf-related symbols to FBSDprivate_1.0.das2007-12-181-9/+13
| | | | Discussed with: deischen, kan, phk
* Since nan() is supposed to work the same as strtod("nan(...)", NULL),das2007-12-188-50/+85
| | | | | | | | | | | | my original implementation made both use the same code. Unfortunately, this meant libm depended on a vendor header at compile time and previously- unexposed vendor bits in libc at runtime. Hence, I just wrote my own version of the relevant vendor routine. As it turns out, mine has a factor of 8 fewer of lines of code, and is a bit more readable anyway. The strtod() and *scanf() routines still use vendor code. Reviewed by: bde
* Document NO_PROXY / no_proxy.des2007-12-181-1/+17
| | | | MFC after: 3 weeks
* Add support for the NO_PROXY / no_proxy environment variable as used bydes2007-12-184-8/+63
| | | | | | | | | lynx, curl etc. Note that this patch differs significantly from that in the PR, as the submitter refined it after submitting the PR. PR: 110388 Submitted by: Alexander Pohoyda <alexander.pohoyda@gmx.net> MFC after: 3 weeks
* Old patch I had lying around: correctly cast the argument to is*().des2007-12-183-24/+25
| | | | | | IWBNI gcc could warn about this the way it warns about printf() abuse. MFC after: 1 week
OpenPOWER on IntegriCloud