Path to this page:
Subject: CVS commit: pkgsrc/devel/libowfat
From: Amitai Schleier
Date: 2017-06-26 06:52:34
Message id: 20170626045234.E2345FAE8@cvs.NetBSD.org
Log Message:
Update to 0.31. From the changelog:
0.31:
special case buffer_get_token with token length 1 through memccpy (almost 4x \
speedup)
test for pread and use it instead of lseek+read in cdb and io_mmapwritefile
add mmap_readat (like mmap_read but open by fd, not by name)
add fmt_iso8601 and scan_iso8601 (time_t -> "2014-05-27T19:22:16Z")
add fmt_netstring and scan_netstring (http://cr.yp.to/proto/netstrings.txt)
add (fmt|scan)_varint and (fmt|scan)_pb_* (binary marshaling ala protocol buffers)
0.30:
add compiletimeassert.h
add haveuint128.h
byte.h now defines UNALIGNED_ACCESS_OK on x86
add scan_ulongn, scan_8longn, scan_xlongn, scan_longn, scan_netstring
change buffer to have a destructor function pointer
SECURITY: fmt_strn would write one byte too many (returned right length \
though, so usually not a problem as that byte would be overwritten with \0 by \
the caller anyway)
fmt_pad and fmt_fill fail more gracefully when srclen > maxlen
You can now say $ make WERROR=-Werror (compiling t.c may fail but that's \
strictly speaking not part of the library)
scan_html now decodes HTML entities based on the actual w3c list (from \
entities.json, say gmake update to fetch the current version)
added fmt_escapechar* to fmt.h (implement various escaping mechanisms also \
found in textcode but for a single char not a whole string, and they always \
escape, not just when they think it's needed)
scan_ushort was supposed to abort early and return 5 when attempting to parse \
"65536", because the result does not fit. It did not. Now it does.
scan_*long, scan_*int, scan_*short now properly abort if the number would not fit
SECURITY: check for integer overflow in stralloc_ready
switch io_fds from array to newly implemented (hopefully thread-safe) iarray
switch epoll from level triggering to edge triggering
introduce io_eagain_read and io_eagain_write (discontinue using io_eagain plz)
fix buffer_get
add fmt_html_tagarg, fmt_xml, scan_html_tagarg
add socket_fastopen, socket_fastopen_connect4, socket_fastopen_connect6 and \
socket_quickack
on Linux, in iob_send, if MSG_MORE is defined, and the request type
lends itself to it, used sendto/sendmsg with MSG_MORE instead of
TCP_CORK (saves two syscalls)
add io_fd_flags so the caller can tell io_fd whether the socket is blocking
(saves one fcntl syscall)
more constness for stralloc and buffer
mmap_read/mmap_shared on zero length files no longer fail but return a
zero length buffer
if SOCK_NONBLOCK is defined, use it instead of socket+fcntl
... but if errno==EINVAL still fall back to socket+fcntl (Robert Henney)
SECURITY: fix botched integer overflow handling logic in stralloc_ready (Giorgio)
add critbit
0.29:
save 8 bytes in taia.h for 64-bit systems
add buffer_tosa (buffer writing to auto-growing stralloc)
add iarray
support SCTP in addition to TCP
fix io_receivefd so the incoming buffer is only 1 byte; io_passfd
sends only one byte, so we might receive (and discard) other data if
we try to read more (Stefan Bühler, from the lightttpd project)
add io_fd_canwrite (like io_fd but assume the fd is writable)
save a few syscalls here and there
add awesome hack in isset.h (comex, Linus Torvalds)
add byte_equal_notimingattack
Files: