+static int memcmp_different_len(const void *s1, size_t n1, const void *s2, size_t n2)
+{
+ int shared_len = min(n1, n2);
+ int s = memcmp(s1, s2, shared_len);
+ if (s != 0) {
+ return s;
+ }
+
+ if (n1 < n2) {
+ return -1;
+ } else if (n1 > n2) {
+ return 1;
+ } else {
+ return 0;
+ }
+}