From: Vladimír Čunát Date: Fri, 14 Jun 2019 12:59:07 +0000 (+0200) Subject: utils/kr_cache_gc: minor nitpicks X-Git-Tag: v4.1.0~8^2~18 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fb48ddb9ca808231a61be052b0b9d86e38529531;p=thirdparty%2Fknot-resolver.git utils/kr_cache_gc: minor nitpicks It should be no real change, just better readability, hopefully. --- diff --git a/utils/kr_cache_gc/db.c b/utils/kr_cache_gc/db.c index cb82ba646..16f287b81 100644 --- a/utils/kr_cache_gc/db.c +++ b/utils/kr_cache_gc/db.c @@ -90,20 +90,20 @@ const uint16_t *kr_gc_key_consistent(knot_db_val_t key) { const static uint16_t NSEC1 = KNOT_RRTYPE_NSEC; const static uint16_t NSEC3 = KNOT_RRTYPE_NSEC3; - uint8_t *p = key.data; - while(*p != 0) { - while(*p++ != 0) { - if (p - (uint8_t *)key.data >= key.len) { - return NULL; - } - } + // find the first double zero in the key; CACHE_KEY_DEF + const uint8_t *kd = key.data; + ssize_t i; + for (i = 2; !(kd[i - 1] == 0 && kd[i - 2] == 0); ++i) { + if (i >= key.len) return NULL; } - if (p - (uint8_t *)key.data >= key.len) { - return NULL; - } - switch (*++p) { + // the next character can be used for classification + switch (kd[i]) { case 'E': - return (p + 2 - (uint8_t *)key.data >= key.len ? NULL : (uint16_t *)(p + 1)); + if (i + 1 + sizeof(uint16_t) > key.len) { + assert(!EINVAL); + return NULL; + } + return (uint16_t *)&kd[i + 1]; case '1': return &NSEC1; case '3': diff --git a/utils/kr_cache_gc/kr_cache_gc.c b/utils/kr_cache_gc/kr_cache_gc.c index 3e848d6b6..e74ff332a 100644 --- a/utils/kr_cache_gc/kr_cache_gc.c +++ b/utils/kr_cache_gc/kr_cache_gc.c @@ -216,7 +216,7 @@ int kr_cache_gc(kr_cache_gc_cfg_t *cfg) switch (ret) { case KNOT_EOK: deleted_records++; - const uint16_t *entry_type = ret == KNOT_EOK ? kr_gc_key_consistent(**i) : NULL; + const uint16_t *entry_type = kr_gc_key_consistent(**i); assert(entry_type != NULL); rrtypelist_add(&deleted_rrtypes, *entry_type); break;