From ad3baec12f2d86cda58bc2a51173c76b6c335fa2 Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 15 May 2014 19:09:06 +0300 Subject: [PATCH] sequence: Fix yet another case of improper sequence comparison. This time, in mp_seq_cmp_bytes(). How many more cases are still lurking? --- py/sequence.c | 4 ++++ tests/basics/bytes_compare.py | 2 ++ 2 files changed, 6 insertions(+) diff --git a/py/sequence.c b/py/sequence.c index 1af2ad27ef..966adaac03 100644 --- a/py/sequence.c +++ b/py/sequence.c @@ -100,6 +100,10 @@ bool mp_seq_cmp_bytes(int op, const byte *data1, uint len1, const byte *data2, u } uint min_len = len1 < len2 ? len1 : len2; int res = memcmp(data1, data2, min_len); + if (op == MP_BINARY_OP_EQUAL) { + // If we are checking for equality, here're the answer + return res == 0; + } if (res < 0) { return false; } diff --git a/tests/basics/bytes_compare.py b/tests/basics/bytes_compare.py index 3804844feb..292267ba75 100644 --- a/tests/basics/bytes_compare.py +++ b/tests/basics/bytes_compare.py @@ -49,3 +49,5 @@ print(b"1" <= b"10") print(b"1" <= b"1/") print(b"10" <= b"1") print(b"1/" <= b"1") + +print(b'o' == b'\n')