PERFORCE change 148756 for review

Gabor Kovesdan gabor at FreeBSD.org
Thu Aug 28 23:03:13 UTC 2008


http://perforce.freebsd.org/chv.cgi?CH=148756

Change 148756 by gabor at gabor_server on 2008/08/28 23:02:40

	- Be more error-prone in the -w part
	
	Suggested by:	ache

Affected files ...

.. //depot/projects/soc2008/gabor_textproc/grep/util.c#74 edit

Differences ...

==== //depot/projects/soc2008/gabor_textproc/grep/util.c#74 (text+ko) ====

@@ -289,14 +289,22 @@
 				if (r == 0 && wflag && pmatch.rm_so != 0 && pmatch.rm_eo != l->len) {
 					wchar_t	*wbegin;
 					wint_t	 wend;
+					size_t	 size;
+
+					size = mbstowcs(NULL, l->dat, pmatch.rm_so);
 
-					wbegin = grep_malloc(mbstowcs(NULL, l->dat, pmatch.rm_so));
-					if (mbstowcs(wbegin, l->dat, pmatch.rm_so) == -1)
+					if (size = -1)
 						r = REG_NOMATCH;
-					wend = sscanf(&l->dat[pmatch.rm_eo], "%lc", &wend);
-					if (iswword(wbegin[wcslen(wbegin)]) ||iswword(wend))
-						r = REG_NOMATCH;
-					free(wbegin);
+					else {
+						wbegin = grep_malloc(size);
+						if (mbstowcs(wbegin, l->dat, pmatch.rm_so) == -1)
+							r = REG_NOMATCH;
+						else if (sscanf(&l->dat[pmatch.rm_eo], "%lc", &wend) != 1)
+							r = REG_NOMATCH;
+						else if (iswword(wbegin[wcslen(wbegin)]) ||iswword(wend))
+							r = REG_NOMATCH;
+						free(wbegin);
+					}
 				}
 				if (r == 0) {
 					if (m == 0)


More information about the p4-projects mailing list