aboutsummaryrefslogtreecommitdiff
path: root/contrib/libc-vis
Commit message (Collapse)AuthorAgeFilesLines
* Remove __FBSDID from netbsd libc sourcesBrooks Davis2023-11-212-4/+0
| | | | | | | | I added them per then-current practice when I imported them, but now they are just gratuious local diffs. Reviewed by: imp Differential Revision: https://reviews.freebsd.org/D42686
* vis: relocate _DIAGASSERT() defineBrooks Davis2023-11-211-1/+2
| | | | | | | Other similar files from NetBSD define it unconditionally as a local diff. Reviewed by: imp (as part of D42686)
* vis(3): need <stdint.h> for SIZE_MAXKyle Evans2023-08-131-0/+1
|
* Merge commit 'acb089b983171667467adc66f56a723b609ed22e' into kbsd/visKyle Evans2023-08-135-30/+76
| | | | | | | | | Highlights: - Some style fixes - Bumped mbbuf in istrsenvisx() to MB_LEN_MAX to avoid VLAs - mbslength cannot go negative, so make it unsigned - Further bounds checking & fix an additional overrun, with dlen == 0 - Avoid duplicate call to wcslen(start)
* libc: fix some overflow scenarios in vis(3)Kyle Evans2023-08-081-8/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | The previous incarnation of this would call wcrtomb() on the destination buffer, and only check for overflow *after* it's happened. Additionally, the conversion error / VIS_NOLOCALE path also didn't check for overflow, and the overflow check at the end didn't account for the fact that we still need to write a NUL terminator afterward. Start by only doing the multibyte conversion into mbdst directly if we have enough buffer space to guarantee it'll fit. An additional MB_CUR_MAX buffer has been stashed on the stack to write into if we're cutting it close at the end of the buffer, since we don't really have a good way to determine the length of the wchar_t without just doing the conversion. We'll do the conversion into the buffer that's guaranteed to fit, then copy it over if the copy won't overflow. The byte-for-byte overflow is a little bit easier, as we simply check for overflow with each byte written and make sure we can still NUL terminate after. Tests added to exercise these edge cases. Reviewed by: des Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D41328
* vis(3): avoid out-of-bounds stack buffer readsAlex Richardson2021-06-161-1/+2
| | | | | | | | | | | I found this while running kdump(1) on a CheriBSD system due to a capability length violation when printing the /etc/libmap.conf read() system call: it crashed immediately after printing the first line. Found by: CHERI Reviewed By: jhb MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D30771
* Update vis(3) the latest from NetBSD.Brooks Davis2017-11-284-21/+39
| | | | | | | | | | | | This adds VIS_DQ for compatiblity with OpenBSD. Correct by an off-by-one error and a read buffer overflow detected using asan. MFC after: 1 day Notes: svn path=/head/; revision=326307
* vis(3): delete spurious .Pp macroEnji Cooper2017-05-231-1/+0
| | | | | | | | | MFC after: 2 weeks Reported by: make manlint Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=318702
* strvis(3): Avoid internal state of multibyte functions being tainted.Bryan Drewery2016-12-061-3/+8
| | | | | | | | | | | | | The mbtoc(3) and wctomb(3) functions use internal state which may be tainted before the call to strvis(3). In this context we can just use the thread-safe versions mbrtoc(3) and wcrtomb(3) which allow passing our own state from our stack. MFC after: 2 weeks Sponsored by: Dell EMC Isilon Notes: svn path=/head/; revision=309626
* Update to a June 8th snapshot of (un)vis form NetBSD.Brooks Davis2016-06-084-51/+159
| | | | | | | | | | | | | This adds stravis() and some new encoding flags VIS_SHELL, VIS_META, and VIS_NOLOCALE. Assorted cleanups and fixes includeing a manpage typo[0]. PR: 210013 [0] Submitted by: pi [0] Notes: svn path=/head/; revision=301679
* Merge from NetBSD:Brooks Davis2014-09-081-9/+16
| | | | | | | | | | | | PR/49185: Conrad Meyer: strvisx: Handle zero-length input strings gracefully. (don't abuse 0 to mean compute string length internally) PR: 193447 Submitted by: Conrad Meyer <conrad.meyer@isilon.com> MFC after: 1 month Notes: svn path=/head/; revision=271287
* Restore the Nx macro lost in transit.Sergey Kandaurov2014-01-291-0/+1
| | | | | | | | | | | This matches upstream. PR: 186205 Submitted by: naddy MFC after: 3 days Notes: svn path=/head/; revision=261261
* Update to the latest (un)vis(3) sources from NetBSD. This addsBrooks Davis2013-03-145-404/+588
| | | | | | | | | | | | | | | | multibyte support[0] and the new functions strenvisx and strsenvisx. Add MLINKS for vis(3) functions add by this and the initial import from NetBSD[1]. PR: bin/166364, bin/175418 Submitted by: "J.R. Oldroyd" <fbsd@opal.com>[0] stefanf[1] Obtained from: NetBSD MFC after: 2 weeks Notes: svn path=/head/; revision=248302
* Replace our implementation of the vis(3) and unvis(3) APIs withBrooks Davis2012-12-185-0/+1962
NetBSD's. This output size limited versions of vis and unvis functions as well as a set of vis variants that allow arbitrary characters to be specified for encoding. Finally, MIME Quoted-Printable encoding as described in RFC 2045 is supported. Notes: svn path=/head/; revision=244401