summaryrefslogtreecommitdiff
path: root/lib/libc/regex
Commit message (Collapse)AuthorAgeFilesLines
* MFC r300683:Pedro F. Giffuni2016-06-242-24/+50
| | | | | | | | | | | | | | | | | | | | | | | | | libc: regexec(3) adjustment. Change the behavior of when REG_STARTEND is combined with REG_NOTBOL. From the original posting[1]: "Enable the assumption that pmatch[0].rm_so is a continuation offset to a string and allows us to do a proper assessment of the character in regards to it's word position ('^' or '\<'), without risking going into unallocated memory." This change makes us similar to how glibc handles REG_STARTEND | REG_NOTBOL, and is closely related to a soon-to-land fix to sed. Special thanks to Martijn van Duren and Ingo Schwarze for working out some consistent behaviour. Differential Revision: https://reviews.freebsd.org/D6257 Taken from: openbsd-tech 2016-05-24 [1] (Martijn van Duren) Notes: svn path=/stable/9/; revision=302169
* MFC r300378:Pedro F. Giffuni2016-05-291-9/+6
| | | | | | | | | | | | | | | | libc/regex: fix two buffer underruns. Fix some rather complex regex issues found on OpenBSD as part of some ongoing work to fix a sed(1) bug. Curiously the OpenBSD tests don't trigger segfaults on FreeBSD but the bugs were confirmed by running a port of FreeBSD's regex under OpenBSD's malloc. Huge thanks to Ingo for confirming the behavior. Obtained from: OpenBSD (CVS 1.20, 1.21) Notes: svn path=/stable/9/; revision=300964
* MFC r298521;Pedro F. Giffuni2016-04-281-2/+2
| | | | | | | | | | | | | | regex: prevent two improbable signed integer overflows. In matcher() we used an integer to index nsub of type size_t. In print() we used an integer to index nstates of type sopno, typedef'd long. In both cases the indexes never take negative values. Match the types to avoid any error. Notes: svn path=/stable/9/; revision=298727
* MFstable/10 r292481:Enji Cooper2015-12-201-1/+1
| | | | | | | | | | | | | | MFC r292153: Add -static to CFLAGS to unbreak the tests by using a libc.a with the xlocale private symbols exposed which aren't exposed publicly via the DSO PR: 191354 Sponsored by: EMC / Isilon Storage Division Notes: svn path=/stable/9/; revision=292482
* MFstable/10 r292170:Enji Cooper2015-12-133-4/+6
| | | | | | | | | | | | | | | MFC r291837: split.ih: - Create automatically generated include header for split.c main.c: - Use function definitions from debug.ih and split.ih instead of externs Sponsored by: EMC / Isilon Storage Division Notes: svn path=/stable/9/; revision=292171
* MFstable/10 r292144:Enji Cooper2015-12-133-78/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MFC r291832,r291833,r291834,r291835,r291836,r291838: r291832: Fix -Wformat warnings by using the correct format qualifiers Sponsored by: EMC / Isilon Storage Division r291833: - Use ANSI C function prototypes/definitions instead of K&R style ones - Add a missing return type for main(..) Sponsored by: EMC / Isilon Storage Division r291834: Add missing headers and sort #includes per style(9) Sponsored by: EMC / Isilon Storage Division r291835: Use ANSI C function prototypes/definitions instead of K&R style ones Sponsored by: EMC / Isilon Storage Division r291836: Use `==` instead of `=` in the function comment above split(..) so mkh -p exposes split(..). Sponsored by: EMC / Isilon Storage Division r291838: Fix -Wformat issues and minor whitespace issues in surrounding areas Sponsored by: EMC / Isilon Storage Division Notes: svn path=/stable/9/; revision=292145
* MFC r278739:Xin LI2015-02-171-0/+17
| | | | | | | | | | | Disallow pattern spaces which would cause intermediate calculations to overflow size_t. Obtained from: DragonFly (2841837793bd095a82f477e9c370cfe6cfb3862c dillon) Security: CERT VU#695940 Notes: svn path=/stable/9/; revision=278911
* MFC r275930:Xin LI2015-01-021-1/+3
| | | | | | | | | Plug a memory leak. Obtained from: DragonFlyBSD (commit 5119ece) Notes: svn path=/stable/9/; revision=276554
* MFC r265202:Pedro F. Giffuni2014-05-092-7/+1
| | | | | | | | | | | | Remove some unreachable breaks in regex. This is based on a much bigger cleanup done in Illumos. Reference: https://www.illumos.org/issues/2077 Notes: svn path=/stable/9/; revision=265727
* MFC r247596:Xin LI2013-04-081-1/+1
| | | | | | | | | | Fix assignment of maximum bounadary. Submitted by: Sascha Wildner <saw online de> Obtained from: DragonFly rev fd39c81ba220f7ad6e4dc9b30d45e828cf58a1ad Notes: svn path=/stable/9/; revision=249289
* MFC the xlocale implementation.David Chisnall2012-05-221-4/+11
| | | | | | | | | | Merged revisions: 227487,227753,227807,227818,227999,228002,228875,230156,231673,232498,232601,232620,232626,232926-232927,232929,232931,232935,233173,233600,234573,234578,235239 This currently defines __NO_TLS on ARM (unlike head), because the required support function has not been MFC'd. Notes: svn path=/stable/9/; revision=235785
* mdoc: drop redundant .Pp and .LP callsUlrich Spörlein2010-10-081-1/+0
| | | | | | | They have no effect when coming in pairs, or before .Bl/.Bd Notes: svn path=/head/; revision=213573
* Fix an off-by-one error in the marking of the O_CH operatorDiomidis Spinellis2009-09-161-1/+1
| | | | | | | | | | following an OOR2 operator. PR: 130504 MFC after: 2 weeks Notes: svn path=/head/; revision=197246
* Add a couple of debugging statements.Diomidis Spinellis2009-09-161-0/+3
| | | | Notes: svn path=/head/; revision=197245
* Add two test cases from PR 130504.Diomidis Spinellis2009-09-151-0/+3
| | | | | | | | | | | | | An additional one coming from http://www.research.att.com/~gsf/testregex/ was not added; at some point the entire AT&T regression test harness should be imported here. But that would also mean commitment to fix the uncovered errors. PR: 130504 Submitted by: Chris Kuklewicz Notes: svn path=/head/; revision=197234
* Add two example regexps: (1) one for matching all the charactersGiorgos Keramidas2008-09-051-0/+8
| | | | | | | | | | | that belong in a character class, and (2) one for matching all the characters *not* in a character class. Submitted by: Mark B, mkbucc at gmail.com MFC after: 3 days Notes: svn path=/head/; revision=182795
* getopt(3) returns -1, not EOF.Kevin Lo2008-02-181-1/+1
| | | | Notes: svn path=/head/; revision=176380
* Diff reduction against other *BSDs: ANSIfy functionXin LI2007-06-114-141/+66
| | | | | | | prototypes. No function changes. Notes: svn path=/head/; revision=170528
* Const'ify and ANSIfy the internal interfaces of regex(3).Xin LI2007-05-251-109/+100
| | | | | | | | This is the final change that makes libc to compile with WERROR on my amd64 crashbox. Notes: svn path=/head/; revision=169982
* Use C comments since we now preprocess these files with CPP.Daniel Eischen2007-04-291-1/+3
| | | | Notes: svn path=/head/; revision=169092
* Test cases for back references.Xin LI2007-03-051-0/+24
| | | | | | | Obtained from: OpenBSD Notes: svn path=/head/; revision=167223
* Only stop evaluation of a back reference if the match length isXin LI2007-03-051-15/+17
| | | | | | | | | zero and the recursion level is too deep. Obtained from: OpenBSD Notes: svn path=/head/; revision=167222
* Avoid infinite recursion on:Xin LI2007-03-051-0/+2
| | | | | | | | | echo "foo foo bar bar bar baz" | sed 's/\([^ ]*\)\( *\1\)*/\1/g' Obtained from: OpenBSD via NetBSD (rev. 1.18) Notes: svn path=/head/; revision=167216
* Per Regents of the University of Calfornia letter, remove advertisingWarner Losh2007-01-099-36/+0
| | | | | | | | | clause. # If I've done so improperly on a file, please let me know. Notes: svn path=/head/; revision=165903
* Add each directory's symbol map file to SYM_MAPS.Daniel Eischen2006-03-131-0/+2
| | | | Notes: svn path=/head/; revision=156613
* Add symbol maps and initial symbol version definitions to libc.Daniel Eischen2006-03-131-0/+8
| | | | | | | Reviewed by: davidxu Notes: svn path=/head/; revision=156608
* Use prototypes for CHIN1() and CHIN().Stefan Farfeleder2005-09-121-6/+2
| | | | Notes: svn path=/head/; revision=150053
* Fix a boundary condition error in slow() and fast() in multibyte locales:Tim J. Robbins2005-08-171-6/+7
| | | | | | | | we must allow the character beginning at "p" to be converted to a wide character for the purposes of EOL processing and word-boundary matching. Notes: svn path=/head/; revision=149180
* Document the fact that word-boundary matching does not workTim J. Robbins2005-08-171-1/+3
| | | | | | | properly in multibyte locales. Notes: svn path=/head/; revision=149179
* Change OUT from -2 to CHAR_MIN-1, making it impossible for it toTim J. Robbins2005-08-131-1/+1
| | | | | | | | | | | | inadvertently match a negative char in the RE being compiled. This fixes compilation of "\376" (as an ERE) and "\376\376" (as a BRE). PR: 84740 MFC after: 1 week Notes: svn path=/head/; revision=149009
* Remove unused file.Xin LI2005-04-251-63/+0
| | | | | | | | | | Confirmed by: tjr [1] [1] PERFORCE CHANGESET 57044: http://perforce.freebsd.org/changeView.cgi?CH=57044 Notes: svn path=/head/; revision=145493
* Expand *n't contractions.Ruslan Ermilov2005-02-131-3/+3
| | | | Notes: svn path=/head/; revision=141846
* Sort sections.Ruslan Ermilov2005-01-201-8/+8
| | | | Notes: svn path=/head/; revision=140505
* Plug memory leak.Diomidis Spinellis2004-12-301-0/+4
| | | | | | | | PR: bin/75656 MFC after: 2 weeks Notes: svn path=/head/; revision=139437
* Fix computation of the 'n' argument to mbrtowc (through XMBRTOWC) to avoidTim J. Robbins2004-11-211-4/+4
| | | | | | | | | | | | | reading past 'stop' in various places when converting multibyte characters. Reading too far caused truncation to not be detected when it should have been, eventually causing regexec() to loop infinitely in with certain combinations of patterns and strings in multibyte locales. PR: 74020 MFC after: 4 weeks Notes: svn path=/head/; revision=137959
* Directly include <runetype.h> for _CurrentRuneLocale, <_ctype.h> doesn'tStefan Farfeleder2004-10-031-0/+1
| | | | | | | include it in all cases. Notes: svn path=/head/; revision=136091
* Fix two problems with REG_ICASE that were introduced with the addition ofTim J. Robbins2004-09-051-13/+10
| | | | | | | | | | | | | | multibyte character support: - In CHadd(), avoid writing past the end of the character set bitmap when the opposite-case counterpart of wide characters with values less than NC have values greater than or equal to NC. - In CHaddtype(), fix a braino that caused alphabetic characters to be added to all character classes! (but only with REG_ICASE) PR: 71367 Notes: svn path=/head/; revision=134802
* Update paths to reg*.c and regex2.h. Add a target to build regex.h.Tim J. Robbins2004-07-191-1/+3
| | | | Notes: svn path=/head/; revision=132390
* Update for removal of cclass.h. Trim some useless targets. Invoke mkhTim J. Robbins2004-07-191-34/+6
| | | | | | | with "sh mkh" so it works if the script is not executable. Notes: svn path=/head/; revision=132389
* Update for recent changes to struct re_guts. Disable printing the contentsTim J. Robbins2004-07-191-38/+5
| | | | | | | of OANYOF sets for the moment. Notes: svn path=/head/; revision=132388
* Remove unused files.Tim J. Robbins2004-07-192-12/+0
| | | | Notes: svn path=/head/; revision=132387
* Remove an entry from the BUGS section: we have multibyte characterTim J. Robbins2004-07-121-2/+0
| | | | | | | support now. Notes: svn path=/head/; revision=132031
* Make regular expression matching aware of multibyte characters. The generalTim J. Robbins2004-07-125-324/+478
| | | | | | | | | | | | | | | | | | | | idea is that we perform multibyte->wide character conversion while parsing and compiling, then convert byte sequences to wide characters when they're needed for comparison and stepping through the string during execution. As with tr(1), the main complication is to efficiently represent sets of characters in bracket expressions. The old bitmap representation is replaced by a bitmap for the first 256 characters combined with a vector of individual wide characters, a vector of character ranges (for [A-Z] etc.), and a vector of character classes (for [[:alpha:]] etc.). One other point of interest is that although the Boyer-Moore algorithm had to be disabled in the general multibyte case, it is still enabled for UTF-8 because of its self-synchronizing nature. This greatly speeds up matching by reducing the number of multibyte conversions that need to be done. Notes: svn path=/head/; revision=132019
* Add a new error code, REG_ILLSEQ, to indicate that a regular expressionTim J. Robbins2004-07-122-1/+5
| | | | | | | contains an illegal multibyte character sequence. Notes: svn path=/head/; revision=132017
* Remove incomplete support for multi-character collating elements. RemoveTim J. Robbins2004-07-112-262/+8
| | | | | | | unused character category calculations. Notes: svn path=/head/; revision=131973
* Document incorrect handling of multibyte characters.Tim J. Robbins2004-07-061-1/+3
| | | | Notes: svn path=/head/; revision=131692
* Mechanically kill hard sentence breaks.Ruslan Ermilov2004-07-022-3/+3
| | | | Notes: svn path=/head/; revision=131504
* mdoc(7): Use the new feature of the .In macro.Ruslan Ermilov2003-09-081-1/+1
| | | | Notes: svn path=/head/; revision=119893
* Eliminate 61 warnings emitted at WARNS=2 (leaving 53 to go).Jacques Vidrine2003-02-163-6/+6
| | | | | | | | | | Only warnings that could be fixed without changing the generated object code and without restructuring the source code have been handled. Reviewed by: /sbin/md5 Notes: svn path=/head/; revision=111010
* mdoc(7) police: "The .Fa argument.".Ruslan Ermilov2002-12-191-2/+6
| | | | Notes: svn path=/head/; revision=108087