summaryrefslogtreecommitdiffstats
path: root/newlib
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2008-10-02 20:12:34 +0000
committerJeff Johnston <jjohnstn@redhat.com>2008-10-02 20:12:34 +0000
commit015b86d725e33a221b89d93cbd0700980c7b75bf (patch)
tree10f2610447b6420a52137170a82e1e2ce7a52bc8 /newlib
parenteea95bd1439db6ef98d12b4bb04fb7598f6296bf (diff)
downloadcygnal-015b86d725e33a221b89d93cbd0700980c7b75bf.tar.gz
cygnal-015b86d725e33a221b89d93cbd0700980c7b75bf.tar.bz2
cygnal-015b86d725e33a221b89d93cbd0700980c7b75bf.zip
2008-10-02 Jeff Johnston <jjohnstn@redhat.com>
* libc/string/str-two-way.h (critical_factorization): Cast the index operation to ensure unsigned rollover occurs when adding to SIZE_MAX.
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/string/str-two-way.h2
2 files changed, 6 insertions, 1 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index 22a7cd06f..53ce03675 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,5 +1,10 @@
2008-10-02 Jeff Johnston <jjohnstn@redhat.com>
+ * libc/string/str-two-way.h (critical_factorization): Cast the index
+ operation to ensure unsigned rollover occurs when adding to SIZE_MAX.
+
+2008-10-02 Jeff Johnston <jjohnstn@redhat.com>
+
* libc/sys/linux/include/stdint.h (SIZE_MAX): Fix value which should
be size of size_t, not int.
(SIZE_MIN): Remove.
diff --git a/newlib/libc/string/str-two-way.h b/newlib/libc/string/str-two-way.h
index ad71a2595..72b60c39c 100644
--- a/newlib/libc/string/str-two-way.h
+++ b/newlib/libc/string/str-two-way.h
@@ -114,7 +114,7 @@ critical_factorization (const unsigned char *needle, size_t needle_len,
while (j + k < needle_len)
{
a = CANON_ELEMENT (needle[j + k]);
- b = CANON_ELEMENT (needle[max_suffix + k]);
+ b = CANON_ELEMENT (needle[(size_t)(max_suffix + k)]);
if (a < b)
{
/* Suffix is smaller, period is entire prefix so far. */