This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-254-g77219e1


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  77219e1b66e173ef72280f3a91f0a56d9ab58395 (commit)
       via  c033824728c39195232cc9986cd1aab377885d51 (commit)
       via  71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97 (commit)
      from  1f77f0491f10f67442876cffbda387eac9eafe4d (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=77219e1b66e173ef72280f3a91f0a56d9ab58395

commit 77219e1b66e173ef72280f3a91f0a56d9ab58395
Merge: c033824 1f77f04
Author: Andreas Jaeger <aj@suse.de>
Date:   Tue Feb 28 16:20:33 2012 +0100

    Fix ChangeLog

diff --cc ChangeLog
index c301872,fd6efc3..df1f452
--- a/ChangeLog
+++ b/ChangeLog
@@@ -1,12 -1,52 +1,61 @@@
 +2012-02-28  Stanislav Brabec  <sbrabec@suse.cz>
 +
 +	[BZ #13637]
 +	* posix/regex_internal.c (re_string_skip_chars): Fix miscomputation
 +	of remain_len that may cause incomplete multi-byte character and
 +	false match.
 +	* posix/bug-regex33.c: New file.
 +	* posix/Makefile (tests): Add bug-regex33.
 +
+ 2012-02-28  Joseph Myers  <joseph@codesourcery.com>
+ 
+ 	* manual/macros.texi: New file.
+ 	* Makefile (INSTALL, NOTES): Depend on manual/macros.texi.
+ 	* manual/libc.texinfo: Include macros.texi.
+ 	* manual/creatute.texi: Likewise.
+ 	* manual/install.texi: Likewise.
+ 	* manual/arith.texi: Use macros @Theglibc{}, @theglibc{} and
+ 	@glibcadj{} in references to the GNU C Library.
+ 	* manual/charset.texi: Likewise.
+ 	* manual/conf.texi: Likewise.
+ 	* manual/contrib.texi: Likewise.  Consistently use "GNU C Library"
+ 	when not using those macros.
+ 	* manual/creature.texi: Likewise.
+ 	* manual/crypt.texi: Likewise.
+ 	* manual/errno.texi: Likewise.
+ 	* manual/filesys.texi: Likewise.
+ 	* manual/header.texi: Likewise.
+ 	* manual/install.texi: Likewise.
+ 	* manual/intro.texi: Likewise.
+ 	* manual/io.texi: Likewise.
+ 	* manual/job.texi: Likewise.
+ 	* manual/lang.texi: Likewise.
+ 	* manual/libc.texiinfo: Likewise.
+ 	* manual/llio.texi: Likewise.
+ 	* manual/locale.texi: Likewise.
+ 	* manual/maint.texi: Likewise.
+ 	* manual/math.texi: Likewise.
+ 	* manual/memory.texi: Likewise.
+ 	* manual/message.texi: Likewise.
+ 	* manual/nss.texi: Likewise.
+ 	* manual/pattern.texi: Likewise.
+ 	* manual/process.texi: Likewise.
+ 	* manual/resource.texi: Likewise.
+ 	* manual/search.texi: Likewise.
+ 	* manual/setjmp.texi: Likewise.
+ 	* manual/signal.texi: Likewise.
+ 	* manual/socket.texi: Likewise.
+ 	* manual/startup.texi: Likewise.
+ 	* manual/stdio.texi: Likewise.
+ 	* manual/string.texi: Likewise.
+ 	* manual/sysinfo.texi: Likewise.
+ 	* manual/syslog.texi: Likewise.
+ 	* manual/terminal.texi: Likewise.
+ 	* manual/time.texi: Likewise.
+ 	* manual/users.texi: Likewise.
+ 	* INSTALL: Regenerated.
+ 	* NOTES: Regenerated.
+ 
  2012-02-28  Andreas Schwab  <schwab@linux-m68k.org>
  
  	* include/dirent.h: Include <dirstream.h> before

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c033824728c39195232cc9986cd1aab377885d51

commit c033824728c39195232cc9986cd1aab377885d51
Author: Stanislav Brabec <sbrabec@suse.cz>
Date:   Tue Feb 28 16:17:29 2012 +0100

    Add BZ#13637

diff --git a/NEWS b/NEWS
index 35c9617..d68ae66 100644
--- a/NEWS
+++ b/NEWS
@@ -13,7 +13,7 @@ Version 2.16
   5993, 6884, 6907, 9739, 9902, 10110, 10140, 10210, 11174, 11322, 11365,
   11494, 12047, 13058, 13525, 13526, 13527, 13528, 13529, 13530, 13531,
   13532, 13533, 13547, 13551, 13552, 13553, 13555, 13559, 13583, 13618,
-  13695, 13704, 13738
+  13637, 13695, 13704, 13738
 
 * ISO C11 support:
 

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97

commit 71b5d1c5d5a7ca0f8c047b07e5507857fcd29f97
Author: Stanislav Brabec <sbrabec@suse.cz>
Date:   Tue Feb 28 16:16:45 2012 +0100

    	[BZ #13637]
    	* posix/regex_internal.c (re_string_skip_chars): Fix miscomputation
    	of remain_len that may cause incomplete multi-byte character and
    	false match.
    	* posix/bug-regex33.c: New file.
    	* posix/Makefile (tests): Add bug-regex33.

diff --git a/ChangeLog b/ChangeLog
index a1a6c50..c301872 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2012-02-28  Stanislav Brabec  <sbrabec@suse.cz>
+
+	[BZ #13637]
+	* posix/regex_internal.c (re_string_skip_chars): Fix miscomputation
+	of remain_len that may cause incomplete multi-byte character and
+	false match.
+	* posix/bug-regex33.c: New file.
+	* posix/Makefile (tests): Add bug-regex33.
+
 2012-02-28  Andreas Schwab  <schwab@linux-m68k.org>
 
 	* include/dirent.h: Include <dirstream.h> before
diff --git a/posix/Makefile b/posix/Makefile
index ba892f1..565861f 100644
--- a/posix/Makefile
+++ b/posix/Makefile
@@ -82,7 +82,7 @@ tests		:= tstgetopt testfnm runtests runptests	     \
 		   bug-regex21 bug-regex22 bug-regex23 bug-regex24 \
 		   bug-regex25 bug-regex26 bug-regex27 bug-regex28 \
 		   bug-regex29 bug-regex30 bug-regex31 bug-regex32 \
-		   tst-nice tst-nanosleep tst-regex2 \
+		   bug-regex33 tst-nice tst-nanosleep tst-regex2 \
 		   transbug tst-rxspencer tst-pcre tst-boost \
 		   bug-ga1 tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \
 		   tst-getaddrinfo2 bug-glob1 bug-glob2 bug-glob3 tst-sysconf \
@@ -208,6 +208,7 @@ bug-regex25-ENV = LOCPATH=$(common-objpfx)localedata
 bug-regex26-ENV = LOCPATH=$(common-objpfx)localedata
 bug-regex30-ENV = LOCPATH=$(common-objpfx)localedata
 bug-regex32-ENV = LOCPATH=$(common-objpfx)localedata
+bug-regex33-ENV = LOCPATH=$(common-objpfx)localedata
 tst-rxspencer-ARGS = --utf8 rxspencer/tests
 tst-rxspencer-ENV = LOCPATH=$(common-objpfx)localedata
 tst-pcre-ARGS = PCRE.tests
diff --git a/posix/bug-regex33.c b/posix/bug-regex33.c
new file mode 100644
index 0000000..c0c94aa
--- /dev/null
+++ b/posix/bug-regex33.c
@@ -0,0 +1,120 @@
+/* Test re_search with multi-byte characters in EUC-JP.
+   Copyright (C) 2012 Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Stanislav Brabec <sbrabec@suse.cz>, 2012.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
+
+#define _GNU_SOURCE 1
+#include <locale.h>
+#include <regex.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "regex_internal.h"
+
+static int
+do_test (void)
+{
+  struct re_pattern_buffer r;
+  struct re_registers s;
+  int e, rc = 0;
+  if (setlocale (LC_CTYPE, "ja_JP.EUC-JP") == NULL)
+    {
+      puts ("setlocale failed");
+      return 1;
+    }
+  memset (&r, 0, sizeof (r));
+  memset (&s, 0, sizeof (s));
+
+  /* The bug cannot be reproduced without initialized fastmap. */
+  r.fastmap = malloc (SBC_MAX);
+
+                     /* å?­ */
+  re_compile_pattern ("\xb7\xbd", 2, &r);
+
+                /* aaaaa件a��, \xb7\xbd constitutes a false match */
+  e = re_search (&r, "\x61\x61\x61\x61\x61\xb7\xef\x61\xbf\xb7\xbd\xe8",
+                 12, 0, 12, &s);
+  if (e != -1)
+    {
+      printf ("bug-regex33.1: false match or error: re_search() returned %d, should return -1\n", e);
+      rc = 1;
+    }
+
+                /* aaaa件a��, \xb7\xbd constitutes a false match,
+                 * this is a reproducer of BZ #13637 */
+  e = re_search (&r, "\x61\x61\x61\x61\xb7\xef\x61\xbf\xb7\xbd\xe8",
+                 11, 0, 11, &s);
+  if (e != -1)
+    {
+      printf ("bug-regex33.2: false match or error: re_search() returned %d, should return -1\n", e);
+      rc = 1;
+    }
+
+                /* aaa件a��, \xb7\xbd constitutes a false match,
+                 * this is a reproducer of BZ #13637 */
+  e = re_search (&r, "\x61\x61\x61\xb7\xef\x61\xbf\xb7\xbd\xe8",
+                 10, 0, 10, &s);
+  if (e != -1)
+    {
+      printf ("bug-regex33.3: false match or error: re_search() returned %d, should return -1\n", e);
+      rc = 1;
+    }
+
+                /* aa件a��, \xb7\xbd constitutes a false match */
+  e = re_search (&r, "\x61\x61\xb7\xef\x61\xbf\xb7\xbd\xe8",
+                 9, 0, 9, &s);
+  if (e != -1)
+    {
+      printf ("bug-regex33.4: false match or error: re_search() returned %d, should return -1\n", e);
+      rc = 1;
+    }
+
+                /* a件a��, \xb7\xbd constitutes a false match */
+  e = re_search (&r, "\x61\xb7\xef\x61\xbf\xb7\xbd\xe8",
+                 8, 0, 8, &s);
+  if (e != -1)
+    {
+      printf ("bug-regex33.5: false match or error: re_search() returned %d, should return -1\n", e);
+      rc = 1;
+    }
+
+                /* �����, \xb7\xbd here really matches �, but second occurrence is a false match,
+                 * this is a reproducer of bug-regex25 and BZ #13637 */
+  e = re_search (&r, "\xbf\xb7\xbd\xe8\xb7\xbd\xbf\xb7\xbd\xe8",
+                 10, 0, 10, &s);
+  if (e != 4)
+    {
+      printf ("bug-regex33.6: no match or false match: re_search() returned %d, should return 4\n", e);
+      rc = 1;
+    }
+
+                /* ����, \xb7\xbd here really matches �,
+                 * this is a reproducer of bug-regex25 */
+  e = re_search (&r, "\xbf\xb7\xbd\xe8\xb7\xbd\xbf\xb7",
+                 10, 0, 10, &s);
+  if (e != 4)
+    {
+      printf ("bug-regex33.7: no match or false match: re_search() returned %d, should return 4\n", e);
+      rc = 1;
+    }
+
+  return rc;
+}
+
+#define TEST_FUNCTION do_test ()
+#include "../test-skeleton.c"
diff --git a/posix/regex_internal.c b/posix/regex_internal.c
index b71eae4..9be8a53 100644
--- a/posix/regex_internal.c
+++ b/posix/regex_internal.c
@@ -499,7 +499,7 @@ re_string_skip_chars (re_string_t *pstr, int new_raw_idx, wint_t *last_wc)
        rawbuf_idx < new_raw_idx;)
     {
       wchar_t wc2;
-      int remain_len = pstr->len - rawbuf_idx;
+      int remain_len = pstr->raw_len - rawbuf_idx;
       prev_st = pstr->cur_state;
       mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx,
 			  remain_len, &pstr->cur_state);

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog              |    9 ++++
 NEWS                   |    2 +-
 posix/Makefile         |    3 +-
 posix/bug-regex33.c    |  120 ++++++++++++++++++++++++++++++++++++++++++++++++
 posix/regex_internal.c |    2 +-
 5 files changed, 133 insertions(+), 3 deletions(-)
 create mode 100644 posix/bug-regex33.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]