diff --git a/userspace/libsinsp/container.cpp b/userspace/libsinsp/container.cpp index 1cea3d7700..88c5035078 100644 --- a/userspace/libsinsp/container.cpp +++ b/userspace/libsinsp/container.cpp @@ -150,6 +150,7 @@ bool sinsp_container_engine_docker::parse_docker(sinsp_container_manager* manage switch(resp) { case sinsp_docker_response::RESP_BAD_REQUEST: m_api_version = ""; + json = ""; #ifndef CYGWING_AGENT resp = get_docker(manager, "http://localhost/containers/" + container->m_id + "/json", json); #else @@ -188,8 +189,9 @@ bool sinsp_container_engine_docker::parse_docker(sinsp_container_manager* manage container->m_imageid = imgstr.substr(cpos + 1); } - bool no_name = strncmp(container->m_image.c_str(), container->m_imageid.c_str(), - MIN(container->m_image.length(), container->m_imageid.length())) == 0; + bool no_name = !container->m_imageid.empty() && + strncmp(container->m_image.c_str(), container->m_imageid.c_str(), + MIN(container->m_image.length(), container->m_imageid.length())) == 0; if(!no_name || !m_query_image_info) { string hostname, port; @@ -202,7 +204,8 @@ bool sinsp_container_engine_docker::parse_docker(sinsp_container_manager* manage false); } - if(m_query_image_info && (no_name || container->m_imagedigest.empty() || container->m_imagetag.empty())) + if(m_query_image_info && !container->m_imageid.empty() && + (no_name || container->m_imagedigest.empty() || (!container->m_imagedigest.empty() && container->m_imagetag.empty()))) { string img_json; #ifndef CYGWING_AGENT