From: Guido van Rossum Date: Wed, 13 Feb 1991 23:18:39 +0000 (+0000) Subject: Fix stringcompare when strings contain null bytes. X-Git-Tag: v0.9.8~1047 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=253919f3b71657fb328890326dec14e5bb3f7dd0;p=thirdparty%2FPython%2Fcpython.git Fix stringcompare when strings contain null bytes. --- diff --git a/Objects/stringobject.c b/Objects/stringobject.c index 1881bdf6f95d..abb3dd699535 100644 --- a/Objects/stringobject.c +++ b/Objects/stringobject.c @@ -233,8 +233,12 @@ static int stringcompare(a, b) stringobject *a, *b; { - /* XXX should use memcmp on shortest size, then compare lengths */ - return strcmp(a->ob_sval, b->ob_sval); + int len_a = a->ob_size, len_b = b->ob_size; + int min_len = (len_a < len_b) ? len_a : len_b; + int cmp = memcmp(a->ob_sval, b->ob_sval, min_len); + if (cmp != 0) + return cmp; + return (len_a < len_b) ? -1 : (len_a > len_b) ? 1 : 0; } static sequence_methods string_as_sequence = {