#
1.48 |
|
30-Aug-2023 |
christos |
- cast GETNEXT to unsigned where it is being promoted to int to prevent sign-extension (really it would have been better for PEEK*() and GETNEXT() to return unsigned char; this would have removed a ton of (uch) casts, but it is too intrusive for now). - fix an isalpha that should have been iswalpha
|
#
1.47 |
|
21-Dec-2022 |
wiz |
Remove unneeded -D_OPENBSD_SOURCE
|
Revision tags: netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.46 |
|
11-Mar-2021 |
christos |
recognize the "C" language backslash escapes like gnu does (except b which is already taken)
|
#
1.45 |
|
26-Feb-2021 |
christos |
Arrange for tools build
|
#
1.44 |
|
25-Feb-2021 |
christos |
add missing _
|
#
1.43 |
|
25-Feb-2021 |
christos |
fix NLS compilation
|
#
1.42 |
|
25-Feb-2021 |
christos |
Add glue to disable locale code in order to be smaller.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.47 |
|
21-Dec-2022 |
wiz |
Remove unneeded -D_OPENBSD_SOURCE
|
Revision tags: netbsd-10-base cjep_sun2x-base1 cjep_sun2x-base cjep_staticlib_x-base1 cjep_staticlib_x-base
|
#
1.46 |
|
11-Mar-2021 |
christos |
recognize the "C" language backslash escapes like gnu does (except b which is already taken)
|
#
1.45 |
|
26-Feb-2021 |
christos |
Arrange for tools build
|
#
1.44 |
|
25-Feb-2021 |
christos |
add missing _
|
#
1.43 |
|
25-Feb-2021 |
christos |
fix NLS compilation
|
#
1.42 |
|
25-Feb-2021 |
christos |
Add glue to disable locale code in order to be smaller.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-3-RELEASE netbsd-9-2-RELEASE netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.46 |
|
11-Mar-2021 |
christos |
recognize the "C" language backslash escapes like gnu does (except b which is already taken)
|
#
1.45 |
|
26-Feb-2021 |
christos |
Arrange for tools build
|
#
1.44 |
|
25-Feb-2021 |
christos |
add missing _
|
#
1.43 |
|
25-Feb-2021 |
christos |
fix NLS compilation
|
#
1.42 |
|
25-Feb-2021 |
christos |
Add glue to disable locale code in order to be smaller.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.45 |
|
26-Feb-2021 |
christos |
Arrange for tools build
|
#
1.44 |
|
25-Feb-2021 |
christos |
add missing _
|
#
1.43 |
|
25-Feb-2021 |
christos |
fix NLS compilation
|
#
1.42 |
|
25-Feb-2021 |
christos |
Add glue to disable locale code in order to be smaller.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.44 |
|
25-Feb-2021 |
christos |
add missing _
|
#
1.43 |
|
25-Feb-2021 |
christos |
fix NLS compilation
|
#
1.42 |
|
25-Feb-2021 |
christos |
Add glue to disable locale code in order to be smaller.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.41 |
|
25-Feb-2021 |
christos |
protect MIN from re-definition
|
#
1.40 |
|
24-Feb-2021 |
christos |
reduce casts
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.39 |
|
23-Feb-2021 |
christos |
sync with FreeBSD: - NLS support - GNU extensions - bug fixes
|
Revision tags: netbsd-9-1-RELEASE phil-wifi-20200421 phil-wifi-20200411 is-mlppp-base phil-wifi-20200406 netbsd-9-0-RELEASE netbsd-9-0-RC2 netbsd-9-0-RC1 phil-wifi-20191119 netbsd-9-base phil-wifi-20190609
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: netbsd-8-2-RELEASE netbsd-8-1-RELEASE netbsd-8-1-RC1 pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
branches: 1.36.16; use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|
#
1.38 |
|
07-Feb-2019 |
christos |
Add some better error handling from FreeBSD, although we don't suffer from the same issue, since we don't decrement p->next, like FreeBSD does because we don't have multibyte support (yet). We choose to do this so we can fail faster and more predictably.
Here's the original FreeBSD message:
When passed the invalid regular expression "a**", the error is eventually detected and seterr() is called. It sets p->error appropriatly and p->next and p->end to nuls which is a never used char nuls[10] which is zeros due to .bss initialization. Unfortunatly, p_ere_exp() and p_simp_re() both have fall through cases where they set the error, decrement p->next and access it which means a read from what ever .bss variable comes before nuls.
Found with regex_test:repet_multi and CHERI bounds checking.
Reviewed by: ngie, pfg, emaste Obtained from: CheriBSD Sponsored by: DARPA, AFRL MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D10541
|
#
1.37 |
|
07-Feb-2019 |
christos |
Fix OOB read from FreeBSD:
The bug is an out-of-bounds read detected with address sanitizer that happens when 'sp' in p_b_coll_elems() includes NUL byte[s], e.g. if it's equal to "GS\x00". In that case len will be equal to 4, and the strncmp(cp->name, sp, len) call will succeed when cp->name is "GS" but the cp->name[len] == '\0' comparison will cause the read to go out-of-bounds.
Checking the length using strlen() instead eliminates the issue.
The bug was found in LLVM with oss-fuzz: https://reviews.llvm.org/D39380
|
Revision tags: pgoyette-compat-merge-20190127 pgoyette-compat-20190127 pgoyette-compat-20190118 pgoyette-compat-1226 pgoyette-compat-1126 pgoyette-compat-1020 pgoyette-compat-0930 pgoyette-compat-0906 pgoyette-compat-0728 netbsd-8-0-RELEASE phil-wifi-base pgoyette-compat-0625 netbsd-8-0-RC2 pgoyette-compat-0521 pgoyette-compat-0502 pgoyette-compat-0422 netbsd-8-0-RC1 pgoyette-compat-0415 pgoyette-compat-0407 pgoyette-compat-0330 pgoyette-compat-0322 pgoyette-compat-0315 pgoyette-compat-base matt-nb8-mediatek-base perseant-stdc-iso10646-base netbsd-8-base prg-localcount2-base3 prg-localcount2-base2 prg-localcount2-base1 prg-localcount2-base pgoyette-localcount-20170426 bouyer-socketcan-base1 pgoyette-localcount-20170320 bouyer-socketcan-base pgoyette-localcount-20170107 pgoyette-localcount-20161104 localcount-20160914 pgoyette-localcount-20160806 pgoyette-localcount-20160726 pgoyette-localcount-base
|
#
1.36 |
|
12-Sep-2015 |
christos |
use the unsigned char version of the input char in all cases "cap[uc]" to avoid accessing cap[negative], found by Elliott Hughes
|
#
1.35 |
|
17-Feb-2015 |
joerg |
Use reallocarr and simplify. Document valid reallocation failures.
|
#
1.34 |
|
05-Feb-2015 |
christos |
Add and use reallocarray() to prevent a multiplication overflow in allocation. Reported by Guido Vranken, thanks!
|
Revision tags: netbsd-7-2-RELEASE netbsd-7-1-2-RELEASE netbsd-7-1-1-RELEASE netbsd-7-1-RELEASE netbsd-7-1-RC2 netbsd-7-nhusb-base-20170116 netbsd-7-1-RC1 netbsd-7-0-2-RELEASE netbsd-7-nhusb-base netbsd-7-0-1-RELEASE netbsd-7-0-RELEASE netbsd-7-0-RC3 netbsd-7-0-RC2 netbsd-7-0-RC1 netbsd-7-base yamt-pagecache-base9 tls-earlyentropy-base riastradh-xf86-video-intel-2-7-1-pre-2-21-15 riastradh-drm2-base3 riastradh-drm2-base2 riastradh-drm2-base1 riastradh-drm2-base agc-symver-base yamt-pagecache-base8 yamt-pagecache-base7 yamt-pagecache-base6 tls-maxphys-base yamt-pagecache-base5 yamt-pagecache-base4
|
#
1.33 |
|
13-Mar-2012 |
christos |
PR/45989: Martin Husemann: lint invocation does include -w only on i386
- turn lint -w for all the platforms after fixing the lint warnings. - add _DIAGASSERTS() for casts that would assign values to types that would not fit. - change types, add casts - change into ansii prototypes - turn on _DIAGNOSTIC for libc (during current, to be eliminated for release builds)
approved by core@
|
Revision tags: netbsd-6-0-6-RELEASE netbsd-6-1-5-RELEASE netbsd-6-1-4-RELEASE netbsd-6-0-5-RELEASE netbsd-6-1-3-RELEASE netbsd-6-0-4-RELEASE netbsd-6-1-2-RELEASE netbsd-6-0-3-RELEASE netbsd-6-1-1-RELEASE netbsd-6-0-2-RELEASE netbsd-6-1-RELEASE netbsd-6-1-RC4 netbsd-6-1-RC3 netbsd-6-1-RC2 netbsd-6-1-RC1 netbsd-6-0-1-RELEASE matt-nb6-plus-nbase netbsd-6-0-RELEASE netbsd-6-0-RC2 matt-nb6-plus-base netbsd-6-0-RC1 netbsd-6-base yamt-pagecache-base3
|
#
1.32 |
|
08-Nov-2011 |
christos |
branches: 1.32.2; 1.32.6; 1.32.8; if we don't have any sets yet, don't try to look in them.
|
Revision tags: yamt-pagecache-base2 yamt-pagecache-base
|
#
1.31 |
|
09-Oct-2011 |
christos |
branches: 1.31.2; pass lint on i386
|
#
1.30 |
|
09-Oct-2011 |
christos |
Prevent regcomp/regexec DoS attacks by limiting the amount of memory used and the level of recursion. Thanks to Maksymilian Arciemowicz for discovery and help with the implementation.
|
Revision tags: cherry-xenmp-base bouyer-quota2-nbase bouyer-quota2-base matt-mips64-premerge-20101231 matt-premerge-20091211 jym-xensuspend-nbase jym-xensuspend-base
|
#
1.29 |
|
12-Feb-2009 |
lukem |
sign-compare fixes
|
Revision tags: netbsd-5-2-3-RELEASE netbsd-5-1-5-RELEASE netbsd-5-2-2-RELEASE netbsd-5-1-4-RELEASE netbsd-5-2-1-RELEASE netbsd-5-1-3-RELEASE netbsd-5-2-RELEASE netbsd-5-2-RC1 netbsd-5-1-2-RELEASE netbsd-5-1-1-RELEASE matt-nb5-mips64-premerge-20101231 matt-nb5-pq3-base netbsd-5-1-RELEASE netbsd-5-1-RC4 matt-nb5-mips64-k15 netbsd-5-1-RC3 netbsd-5-1-RC2 netbsd-5-1-RC1 netbsd-5-0-2-RELEASE matt-nb5-mips64-premerge-20091211 matt-nb5-mips64-u2-k2-k4-k7-k8-k9 matt-nb4-mips64-k7-u2a-k9b matt-nb5-mips64-u1-k1-k5 netbsd-5-0-1-RELEASE netbsd-5-0-RELEASE netbsd-5-0-RC4 netbsd-5-0-RC3 netbsd-5-0-RC2 netbsd-5-0-RC1 christos-time_t-nbase christos-time_t-base netbsd-5-base matt-mips64-base2 mjf-devfs2-base wrstuden-revivesa-base-3 wrstuden-revivesa-base-2 wrstuden-revivesa-base-1 yamt-pf42-base4 yamt-pf42-base3 hpcarm-cleanup-nbase yamt-pf42-baseX yamt-pf42-base2 wrstuden-revivesa-base yamt-pf42-base keiichi-mipv6-base matt-armv6-nbase matt-armv6-prevmlocking cube-autoconf-base matt-armv6-base matt-mips64-base hpcarm-cleanup-base
|
#
1.28 |
|
09-Feb-2007 |
junyoung |
branches: 1.28.22; Rearrange headers for better portability.
|
#
1.27 |
|
08-Feb-2007 |
junyoung |
ANSIfy.
|
#
1.26 |
|
08-Feb-2007 |
junyoung |
Nuke __P.
|
Revision tags: netbsd-4-0-1-RELEASE wrstuden-fixsa-newbase wrstuden-fixsa-base-1 netbsd-4-0-RELEASE netbsd-4-0-RC5 netbsd-4-0-RC4 netbsd-4-0-RC3 netbsd-4-0-RC2 netbsd-4-0-RC1 wrstuden-fixsa-base abandoned-netbsd-4-base netbsd-4-base
|
#
1.25 |
|
19-Mar-2006 |
christos |
remove unused label.
|
#
1.24 |
|
19-Mar-2006 |
christos |
revert previous error check.
|
#
1.23 |
|
19-Mar-2006 |
christos |
Coverity CID 769: Avoid NULL deref.
|
#
1.22 |
|
19-Mar-2006 |
christos |
Coverity CID 770: Avoid NULL deref.
|
#
1.21 |
|
02-Dec-2005 |
yamt |
constify and remove __UNCONST.
|
#
1.20 |
|
29-Nov-2005 |
christos |
WARNS=4
|
Revision tags: netbsd-3-1-1-RELEASE netbsd-3-0-3-RELEASE netbsd-3-1-RELEASE netbsd-3-0-2-RELEASE netbsd-3-1-RC4 netbsd-3-1-RC3 netbsd-3-1-RC2 netbsd-3-1-RC1 netbsd-3-0-1-RELEASE netbsd-3-0-RELEASE netbsd-3-0-RC6 netbsd-3-0-RC5 netbsd-3-0-RC4 netbsd-3-0-RC3 netbsd-3-0-RC2 netbsd-3-0-RC1 netbsd-3-base
|
#
1.19 |
|
18-Sep-2004 |
jdolecek |
make othercase() return int rather than char, to avoid sign extension bug with character codes >= 128
fixes PR lib/26986 by Alexander Becher
|
Revision tags: netbsd-2-0-3-RELEASE netbsd-2-1-RELEASE netbsd-2-1-RC6 netbsd-2-1-RC5 netbsd-2-1-RC4 netbsd-2-1-RC3 netbsd-2-1-RC2 netbsd-2-1-RC1 netbsd-2-0-2-RELEASE netbsd-2-0-1-RELEASE netbsd-2-base netbsd-2-0-RELEASE netbsd-2-0-RC5 netbsd-2-0-RC4 netbsd-2-0-RC3 netbsd-2-0-RC2 netbsd-2-0-RC1 netbsd-2-0-base
|
#
1.18 |
|
07-Aug-2003 |
agc |
Move UCB-licensed code from 4-clause to 3-clause licence.
Patches provided by Joel Baker in PR 22280, verified by myself.
|
Revision tags: netbsd-1-6-PATCH002-RELEASE netbsd-1-6-PATCH002 netbsd-1-6-PATCH002-RC4 netbsd-1-6-PATCH002-RC3 netbsd-1-6-PATCH002-RC2 netbsd-1-6-PATCH002-RC1 netbsd-1-6-PATCH001 netbsd-1-6-PATCH001-RELEASE netbsd-1-6-PATCH001-RC3 netbsd-1-6-PATCH001-RC2 netbsd-1-6-PATCH001-RC1 nathanw_sa_end nathanw_sa_before_merge fvdl_fs64_base nathanw_sa_base netbsd-1-6-RELEASE netbsd-1-6-RC3 netbsd-1-6-RC2 netbsd-1-6-RC1 netbsd-1-6-base
|
#
1.17 |
|
07-Jul-2000 |
itohy |
Passing "char" values to ctype(3) functions is problematic. If an argument of a ctype function is outside "unsigned char" and if it is not EOF, the behavior is undefined.
The isascii(3) is the sole exception of above and it was used to be used to check a value was valid for other ctype functions in ancient systems. On modern systems, the ctype functions take all values of "unsigned char", and this check is obsolete and even wrong for non-ASCII systems. However, we leave the isascii() untouched for now, so as not to change the current behavior.
|
Revision tags: netbsd-1-5-RELEASE netbsd-1-5-BETA2 netbsd-1-5-BETA netbsd-1-5-ALPHA2 netbsd-1-5-base minoura-xpg4dl-base
|
#
1.16 |
|
22-Jan-2000 |
mycroft |
branches: 1.16.4; Delint. Remove trailing ; from uses of __weak_alias(). The macro inserts this if needed.
|
Revision tags: wrstuden-devbsize-19991221 wrstuden-devbsize-base comdex-fall-1999-base
|
#
1.15 |
|
20-Sep-1999 |
lukem |
back out the #ifdef _DIAGNOSTIC argument checks; too many people complained. _DIAGASSERT() is still retained.
|
#
1.14 |
|
16-Sep-1999 |
lukem |
* use _DIAGASSERT() to check pointer arguments against NULL and file descriptors against -1 (as appropriate). * add actual checks which to detect stuff that would trigger_DIAGASSERT(), and attempt to return a sane error condition. * knf some code * remove some `register' decls.
the first two items result in the addition of code similar to the following in various functions:
_DIAGASSERT(path != NULL) #ifdef _DIAGNOSTIC if (path == NULL) { errno = EFAULT; return (-1); } #endif
|
Revision tags: netbsd-1-4-PATCH003 netbsd-1-4-PATCH002 netbsd-1-4-PATCH001 netbsd-1-4-RELEASE netbsd-1-4-base
|
#
1.13 |
|
13-Dec-1998 |
drochner |
Minor size_t!=int related cleanup, only effective on the alpha. btw: the maximum length of an RE is limited by the "int" range, also on the alpha. "sopno" is "int", and "int"s are used as counters within the code, so it would need some work to change this. I only don't know how one could test it...
|
#
1.12 |
|
08-Dec-1998 |
drochner |
Change some function arguments to appropriate types. This makes lint happy without casts.
|
#
1.11 |
|
14-Nov-1998 |
christos |
Delint: - we don't need to use longs; convert to use int32_t. - remove break statements after returns. - cast things properly.
|
#
1.10 |
|
26-Jul-1998 |
mycroft |
constify some tables.
|
#
1.9 |
|
03-Feb-1998 |
perry |
remove obsolete register declarations
|
Revision tags: netbsd-1-3-PATCH003 netbsd-1-3-PATCH003-CANDIDATE2 netbsd-1-3-PATCH003-CANDIDATE1 netbsd-1-3-PATCH003-CANDIDATE0 netbsd-1-3-PATCH002 netbsd-1-3-PATCH001 netbsd-1-3-RELEASE netbsd-1-3-BETA netbsd-1-3-base
|
#
1.8 |
|
21-Jul-1997 |
jtc |
If port provides __weak_alias(), provide an Standard C and POSIX pure identifier namespace by renaming non standard functions and variables such that they have a leading underscore. The library will use those names internally. Weak aliases are used to provide the original names to the API.
This is only the first part of this change. It is most of the functions which are implemented in C for all NetBSD ports. Subsequent changes are to add the same support to the remaining C files, to assembly files, and to the automagically generated assembly source used for system calls. When all of the above is done, ports with weak alias support should add a definition for __weak_alias to <sys/cdefs.h>.
|
#
1.7 |
|
13-Jul-1997 |
christos |
Fix RCSID's Fix gcc warnings. Add missing prototypes #if 0 unused functions
|
Revision tags: netbsd-1-2-PATCH001 netbsd-1-2-RELEASE netbsd-1-2-BETA netbsd-1-2-base netbsd-1-1-PATCH001 netbsd-1-1-RELEASE netbsd-1-1-base
|
#
1.6 |
|
27-Feb-1995 |
cgd |
add unintrusive Ids
|
#
1.5 |
|
30-Jan-1995 |
cgd |
clean up import; kill old cruft.
|
Revision tags: netbsd-1-0-PATCH06 netbsd-1-0-PATCH05 netbsd-1-0-PATCH04 netbsd-1-0-PATCH03 netbsd-1-0-PATCH02 netbsd-1-0-PATCH1 netbsd-1-0-PATCH0 netbsd-1-0-RELEASE netbsd-1-0-base
|
#
1.4 |
|
22-Mar-1994 |
jtc |
Upgrade regex routines to alpha3.4.
|
#
1.3 |
|
23-Feb-1994 |
jtc |
Upgrade regex routines to alpha3.3.
|
#
1.2 |
|
11-Nov-1993 |
jtc |
Update to Henry's Nov 2, 1993 alpha3.2 release.
|
#
1.1 |
|
10-Nov-1993 |
jtc |
branches: 1.1.1; Henry Spencer's POSIX.2 compatibile regular expression matching routines.
|