diff --git a/src/common/tc_loader.c b/src/common/tc_loader.c index a5a5edd3da97b552a0fa20c21d57b80395944821..529606126bd2669a0849cbd5794d0f858c7fdc8e 100644 --- a/src/common/tc_loader.c +++ b/src/common/tc_loader.c @@ -63,7 +63,7 @@ static int excute_cmd(const char *format, ...) va_start(args, format); ret = vsnprintf(g_cmdBuf, MAX_CMD_LEN, format, args); va_end(args); - if (ret < 0) { + if (ret < 0 || ret >= MAX_CMD_LEN) { return TC_ERR; } diff --git a/src/ingress/ingress.c b/src/ingress/ingress.c index 5f0fa93a938d0788579055ceb17e00bb35f6bd95..cbd66d46ab82c8e49d089e6bcfb383d19e35cc73 100644 --- a/src/ingress/ingress.c +++ b/src/ingress/ingress.c @@ -40,7 +40,7 @@ void IngressMgrDestroy(IngressMgr *mgr) return; } - if (mgr->epoll_fd > 0) { + if (mgr->epoll_fd >= 0) { close(mgr->epoll_fd); } free(mgr); diff --git a/src/lib/imdb/container_cache.c b/src/lib/imdb/container_cache.c index 5c6e3e30274253cafe07095f28c13cede5a6e1fe..ba96a09f368dfc21b3b3342a2f87506fde1053c6 100644 --- a/src/lib/imdb/container_cache.c +++ b/src/lib/imdb/container_cache.c @@ -155,6 +155,7 @@ static void fill_pod_info(struct pod_cache *pod_cache, const char *container_id) } struct key_value_pairs *kv_pairs = Json_GetKeyValuePairs(pod_labels_json); if (!kv_pairs) { + Json_Delete(pod_labels_json); return; } struct key_value *kv; diff --git a/src/lib/probe/snooper.c b/src/lib/probe/snooper.c index 0fd6431af4687221fc8b670923a56f3d730996d1..5eb1b5f2441d2ff27d9221b8e11ec6e7592d00b9 100644 --- a/src/lib/probe/snooper.c +++ b/src/lib/probe/snooper.c @@ -570,6 +570,7 @@ static int parse_snooper_procname(struct probe_s *probe, const void *json) ret = add_snooper_conf_procname(probe, (const char *)comm, (const char *)cmdline, (const char *)dbgdir, label); if (ret != 0) { + free_custom_labels(label, PROC_CUSTOM_LABELS_NUM); return -1; } }