From: Arran Cudbard-Bell Date: Sun, 5 Dec 2021 05:21:04 +0000 (-0500) Subject: Match what strcmp would return X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=489ac29090ead1b1a5bd13ea590e13efab4e3078;p=thirdparty%2Ffreeradius-server.git Match what strcmp would return --- diff --git a/src/include/build.h b/src/include/build.h index 01a3a1fe4de..b18a1011835 100644 --- a/src/include/build.h +++ b/src/include/build.h @@ -99,12 +99,11 @@ do { \ */ #define MEMCMP_RETURN(_a, _b, _field, _len_field) \ do { \ - int8_t _ret = CMP((_a)->_len_field, (_b)->_len_field); \ - int _mret; \ - if (_ret != 0) return _ret; \ - _mret = memcmp((_a)->_field, (_b)->_field, (_a)->_len_field); \ - _ret = CMP(_mret, 0); \ + int8_t _lret = CMP((_a)->_len_field, (_b)->_len_field); \ + int8_t _ret; \ + _ret = CMP(memcmp((_a)->_field, (_b)->_field, _lret > 0 ? (_a)->_len_field : (_b)->_len_field), 0); \ if (_ret != 0) return _ret; \ + return _lret; \ } while (0) /** Remove const qualification from a pointer