This fixes the issue of --server <socket> parameter
last character was dropped. There is no need to use
strncpy, as the length is already checked, and it is
known that the destination buffer is big enough
Change-Id: I646f86709d59d33b8f1d27b725eb42a9f44f6f2d
---
monitor/control.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/monitor/control.c b/monitor/control.c
index d1ba97d37..266602a34 100644
--- a/monitor/control.c
+++ b/monitor/control.c
@@ -1165,14 +1165,12 @@ static int server_fd = -1;
void control_server(const char *path)
{
struct sockaddr_un addr;
- size_t len;
int fd;
if (server_fd >= 0)
return;
- len = strlen(path);
- if (len > sizeof(addr.sun_path) - 1) {
+ if (strlen(path) > sizeof(addr.sun_path) - 1) {
fprintf(stderr, "Socket name too long\n");
return;
}@@ -1187,7 +1185,7 @@ void control_server(const char *path)
memset(&addr, 0, sizeof(addr));
addr.sun_family = AF_UNIX;
- strncpy(addr.sun_path, path, len - 1);
+ strcpy(addr.sun_path, path);
if (bind(fd, (struct sockaddr *) &addr, sizeof(addr)) < 0) {
perror("Failed to bind server socket");--
2.31.1