X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_telemetry%2Ftelemetry_legacy.c;h=a341fe4ebdc06430ca8b95054e909c69f7edc5e6;hb=a8cdfc69c84b7740646368a46bbd3d4d6ddf97b0;hp=10b575adfda87cab7b541585cc35c4c1161dbc6e;hpb=bd3c89cb1ab38ba04033f3ae8aa08823d4a43f88;p=dpdk.git diff --git a/lib/librte_telemetry/telemetry_legacy.c b/lib/librte_telemetry/telemetry_legacy.c index 10b575adfd..a341fe4ebd 100644 --- a/lib/librte_telemetry/telemetry_legacy.c +++ b/lib/librte_telemetry/telemetry_legacy.c @@ -95,11 +95,16 @@ register_client(const char *cmd __rte_unused, const char *params, *strchr(data, '\"') = 0; fd = socket(AF_UNIX, SOCK_SEQPACKET, 0); + if (fd < 0) { + perror("Failed to open socket"); + return -1; + } addrs.sun_family = AF_UNIX; strlcpy(addrs.sun_path, data, sizeof(addrs.sun_path)); if (connect(fd, (struct sockaddr *)&addrs, sizeof(addrs)) == -1) { perror("\nClient connection error\n"); + close(fd); return -1; } pthread_create(&th, NULL, &legacy_client_handler, @@ -212,7 +217,7 @@ legacy_client_handler(void *sock_id) int ret; char buffer_recv[BUF_SIZE]; /* receive data is not null terminated */ - int bytes = read(s, buffer_recv, sizeof(buffer_recv)); + int bytes = read(s, buffer_recv, sizeof(buffer_recv) - 1); while (bytes > 0) { buffer_recv[bytes] = 0; @@ -229,7 +234,7 @@ legacy_client_handler(void *sock_id) if (ret < 0) printf("\nCould not send error response\n"); } - bytes = read(s, buffer_recv, sizeof(buffer_recv)); + bytes = read(s, buffer_recv, sizeof(buffer_recv) - 1); } close(s); return NULL;