From: Guido van Rossum Date: Fri, 4 Oct 1996 13:39:37 +0000 (+0000) Subject: Replace all uses of strncmp (in split, find, rfind) with memcmp, so X-Git-Tag: v1.4~153 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=a0ca4c402d1e19cbc9b317632deab0d7c2492987;p=thirdparty%2FPython%2Fcpython.git Replace all uses of strncmp (in split, find, rfind) with memcmp, so embedded \0 in the delimiter is handled properly. Thanks to Sjoerd for suggesting this. --- diff --git a/Modules/stropmodule.c b/Modules/stropmodule.c index a70df8cde410..324859e98593 100644 --- a/Modules/stropmodule.c +++ b/Modules/stropmodule.c @@ -132,7 +132,7 @@ strop_splitfields(self, args) i = j = 0; while (i+n <= len) { - if (s[i] == sub[0] && (n == 1 || strncmp(s+i, sub, n) == 0)) { + if (s[i] == sub[0] && (n == 1 || memcmp(s+i, sub, n) == 0)) { item = newsizedstringobject(s+j, (int)(i-j)); if (item == NULL) goto fail; @@ -261,7 +261,7 @@ strop_find(self, args) len -= n; for (; i <= len; ++i) if (s[i] == sub[0] && - (n == 1 || strncmp(&s[i+1], &sub[1], n-1) == 0)) + (n == 1 || memcmp(&s[i+1], &sub[1], n-1) == 0)) return newintobject((long)i); return newintobject(-1L); @@ -294,7 +294,7 @@ strop_rfind(self, args) for (j = len-n; j >= i; --j) if (s[j] == sub[0] && - (n == 1 || strncmp(&s[j+1], &sub[1], n-1) == 0)) + (n == 1 || memcmp(&s[j+1], &sub[1], n-1) == 0)) return newintobject((long)j); return newintobject(-1L);