diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/date/date_parse.c | 4 | ||||
-rw-r--r-- | ext/date/prereq.mk | 2 | ||||
-rw-r--r-- | ext/date/zonetab.h | 17 |
3 files changed, 10 insertions, 13 deletions
diff --git a/ext/date/date_parse.c b/ext/date/date_parse.c index 8717850eba..519f29cbcb 100644 --- a/ext/date/date_parse.c +++ b/ext/date/date_parse.c @@ -438,13 +438,13 @@ date_zone_to_diff(VALUE str) } { long sl = shrunk_size(s, l); - if (sl) { + if (sl > 0 && sl <= MAX_WORD_LENGTH) { char *d = ALLOCV_N(char, vbuf, sl); l = shrink_space(d, s, l); s = d; } } - { + if (l > 0 && l <= MAX_WORD_LENGTH) { const struct zone *z = zonetab(s, (unsigned int)l); if (z) { int d = z->offset; diff --git a/ext/date/prereq.mk b/ext/date/prereq.mk index 4aff03a4f6..b9d9a24dd4 100644 --- a/ext/date/prereq.mk +++ b/ext/date/prereq.mk @@ -1,7 +1,7 @@ .SUFFIXES: .list .list.h: - gperf --ignore-case -E -C -c -P -p -j1 -i 1 -g -o -t -N $(*F) $< \ + gperf --ignore-case -C -c -P -p -j1 -i 1 -g -o -t -N $(*F) $< \ | sed -f $(top_srcdir)/tool/gperf.sed \ > $(@F) diff --git a/ext/date/zonetab.h b/ext/date/zonetab.h index c76056d548..37df5b9e69 100644 --- a/ext/date/zonetab.h +++ b/ext/date/zonetab.h @@ -1,5 +1,5 @@ /* ANSI-C code produced by gperf version 3.1 */ -/* Command-line: gperf --ignore-case -E -C -c -P -p -j1 -i 1 -g -o -t -N zonetab zonetab.list */ +/* Command-line: gperf --ignore-case -C -c -P -p -j1 -i 1 -g -o -t -N zonetab zonetab.list */ /* Computed positions: -k'1-4,$' */ #if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \ @@ -39,6 +39,12 @@ struct zone { static const struct zone *zonetab(); #line 9 "zonetab.list" struct zone; + +#define TOTAL_KEYWORDS 170 +#define MIN_WORD_LENGTH 1 +#define MAX_WORD_LENGTH 17 +#define MIN_HASH_VALUE 5 +#define MAX_HASH_VALUE 438 /* maximum key range = 434, duplicates = 0 */ #ifndef GPERF_DOWNCASE @@ -495,15 +501,6 @@ static const struct stringpool_t stringpool_contents = const struct zone * zonetab (register const char *str, register size_t len) { - enum - { - TOTAL_KEYWORDS = 170, - MIN_WORD_LENGTH = 1, - MAX_WORD_LENGTH = 17, - MIN_HASH_VALUE = 5, - MAX_HASH_VALUE = 438 - }; - static const struct zone wordlist[] = { {-1}, {-1}, {-1}, {-1}, {-1}, |