stat_client.c coverity error.
[vpp.git] / src / vpp-api / client / stat_client.c
index b5aab74..1c099ed 100644 (file)
@@ -102,12 +102,14 @@ stat_segment_connect (char *socket_name)
   if (connect (sock, (struct sockaddr *) &un, sizeof (struct sockaddr_un)) <
       0)
     {
+      close (sock);
       perror ("connect");
       return -1;
     }
 
   if ((mfd = recv_fd (sock)) < 0)
     {
+      close (sock);
       fprintf (stderr, "Receiving file descriptor failed\n");
       return -1;
     }
@@ -177,6 +179,8 @@ copy_data (stat_segment_directory_entry_t * ep)
       break;
 
     case STAT_DIR_TYPE_COUNTER_VECTOR_SIMPLE:
+      if (ep->offset == 0)
+       return result;
       simple_c = stat_segment_pointer (sm->shared_header, ep->offset);
       result.simple_counter_vec = vec_dup (simple_c);
       offset_vector =
@@ -190,6 +194,8 @@ copy_data (stat_segment_directory_entry_t * ep)
       break;
 
     case STAT_DIR_TYPE_COUNTER_VECTOR_COMBINED:
+      if (ep->offset == 0)
+       return result;
       combined_c = stat_segment_pointer (sm->shared_header, ep->offset);
       result.combined_counter_vec = vec_dup (combined_c);
       offset_vector =