diff options
author | Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> | 2024-02-05 12:38:33 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-05 12:38:33 +0100 |
commit | 66371c202fa3331f4c94eee684a032ab9c5cc523 (patch) | |
tree | 3b0a47f273f13df7362d4ea014e20e42661bcf4e /src | |
parent | f2b09014f9c1a1e248ccf3ffa0e7ace1f3bee1af (diff) |
Fix `ndpi_get_lru_cache_stats()` (#2303)
Found while fuzzing
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/ndpi_main.c | 6 | ||||
-rw-r--r-- | src/lib/ndpi_utils.c | 2 |
2 files changed, 5 insertions, 3 deletions
diff --git a/src/lib/ndpi_main.c b/src/lib/ndpi_main.c index 94357421b..53242d988 100644 --- a/src/lib/ndpi_main.c +++ b/src/lib/ndpi_main.c @@ -9962,7 +9962,7 @@ int ndpi_get_lru_cache_stats(struct ndpi_global_context *g_ctx, struct ndpi_lru_cache_stats *stats) { int scope, is_local = 1; - char param[64], buf[8]; + char param[64], buf[8], *rc; if(!stats || (!ndpi_struct && !g_ctx)) return -1; @@ -9970,7 +9970,9 @@ int ndpi_get_lru_cache_stats(struct ndpi_global_context *g_ctx, is_local = 0; } else { snprintf(param, sizeof(param), "lru.%s.scope", ndpi_lru_cache_idx_to_name(cache_type)); - ndpi_get_config(ndpi_struct, NULL, param, buf, sizeof(buf)); + rc = ndpi_get_config(ndpi_struct, NULL, param, buf, sizeof(buf)); + if(rc == NULL) + return -1; scope = atoi(buf); if(scope == NDPI_LRUCACHE_SCOPE_GLOBAL) { is_local = 0; diff --git a/src/lib/ndpi_utils.c b/src/lib/ndpi_utils.c index 4d21e7526..b80485c96 100644 --- a/src/lib/ndpi_utils.c +++ b/src/lib/ndpi_utils.c @@ -3104,6 +3104,6 @@ const char *ndpi_lru_cache_idx_to_name(lru_cache_type idx) "tls_cert", "mining", "msteams", "stun_zoom" }; if(idx < 0 || idx >= NDPI_LRUCACHE_MAX) - return NULL; + return "unknown"; return names[idx]; } |