From f073139b526a0fe104228098c41fa24fc0c4c65d Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 10 Aug 2006 20:53:32 +0000 Subject: (struct control): Remove fastmap member. (extract_regexp): Allocate fastmap separately, since otherwise it might move due to a realloc. --- ChangeLog | 7 +++++++ src/csplit.c | 3 +-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index a95ee39f2..6fc73bc9f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2006-08-10 Paul Eggert + + * src/csplit.c (struct control): Remove fastmap member. + (extract_regexp): Allocate fastmap separately, since otherwise + it might move due to a realloc. This fixes a bug that led + to a core dump on 64-bit sparc Solaris 10 (Sun Studio 10). + 2006-08-10 Jim Meyering * tests/ls/stat-dtype: If "." is tmpfs, skip this test unless uname -s diff --git a/src/csplit.c b/src/csplit.c index 1d0119868..07bcb2095 100644 --- a/src/csplit.c +++ b/src/csplit.c @@ -69,7 +69,6 @@ struct control bool ignore; /* If true, produce no output (for regexp). */ bool regexpr; /* True if regular expression was used. */ struct re_pattern_buffer re_compiled; /* Compiled regular expression. */ - char fastmap[UCHAR_MAX + 1]; /* Fastmap for RE_COMPILED. */ }; /* Initial size of data area in buffers. */ @@ -1119,7 +1118,7 @@ extract_regexp (int argnum, bool ignore, char const *str) p->regexpr = true; p->re_compiled.buffer = NULL; p->re_compiled.allocated = 0; - p->re_compiled.fastmap = p->fastmap; + p->re_compiled.fastmap = xmalloc (UCHAR_MAX + 1); p->re_compiled.translate = NULL; re_syntax_options = RE_SYNTAX_POSIX_BASIC & ~RE_CONTEXT_INVALID_DUP & ~RE_NO_EMPTY_RANGES; -- cgit v1.2.3-54-g00ecf