+2007-12-10 [colin] 3.1.0cvs71
+
+ * src/common/utils.c
+ Fix potential buffer overrun (thanks to
+ Hiroyuki)
+
2007-12-08 [paul] 3.1.0cvs70
* src/prefs_receive.c
( cvs diff -u -r 1.274.2.224 -r 1.274.2.225 src/mainwindow.c; cvs diff -u -r 1.395.2.344 -r 1.395.2.345 src/summaryview.c; cvs diff -u -r 1.68.2.41 -r 1.68.2.42 src/summaryview.h; ) > 3.1.0cvs68.patchset
( cvs diff -u -r 1.14.2.13 -r 1.14.2.14 src/vcard.c; ) > 3.1.0cvs69.patchset
( cvs diff -u -r 1.1.2.22 -r 1.1.2.23 src/prefs_receive.c; ) > 3.1.0cvs70.patchset
+( cvs diff -u -r 1.36.2.130 -r 1.36.2.131 src/common/utils.c; ) > 3.1.0cvs71.patchset
const gchar *haystack_ = (const gchar *)haystack;
const gchar *needle_ = (const gchar *)needle;
const gchar *haystack_cur = (const gchar *)haystack;
+ size_t haystack_left = haystacklen;
if (needlelen == 1)
return memchr(haystack_, *needle_, haystacklen);
- while ((haystack_cur = memchr(haystack_cur, *needle_, haystacklen))
+ while ((haystack_cur = memchr(haystack_cur, *needle_, haystack_left))
!= NULL) {
if (haystacklen - (haystack_cur - haystack_) < needlelen)
break;
if (memcmp(haystack_cur + 1, needle_ + 1, needlelen - 1) == 0)
return (gpointer)haystack_cur;
- else
+ else{
haystack_cur++;
+ haystack_left = haystacklen - (haystack_cur - haystack_);
+ }
}
return NULL;