Message ID | 20210804105446.556937-1-mariusz.skamra@codecoup.pl (mailing list archive) |
---|---|
State | Accepted |
Delegated to: | Luiz Von Dentz |
Headers | show |
Series | [v2] monitor: Fix truncated server socket path parameter | expand |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=526191 ---Test result--- Test Summary: CheckPatch PASS 0.27 seconds GitLint PASS 0.11 seconds Prep - Setup ELL PASS 40.73 seconds Build - Prep PASS 0.10 seconds Build - Configure PASS 7.15 seconds Build - Make PASS 178.63 seconds Make Check PASS 9.18 seconds Make Distcheck PASS 210.60 seconds Build w/ext ELL - Configure PASS 7.26 seconds Build w/ext ELL - Make PASS 168.20 seconds Details ############################## Test: CheckPatch - PASS Desc: Run checkpatch.pl script with rule in .checkpatch.conf ############################## Test: GitLint - PASS Desc: Run gitlint with rule in .gitlint ############################## Test: Prep - Setup ELL - PASS Desc: Clone, build, and install ELL ############################## Test: Build - Prep - PASS Desc: Prepare environment for build ############################## Test: Build - Configure - PASS Desc: Configure the BlueZ source tree ############################## Test: Build - Make - PASS Desc: Build the BlueZ source tree ############################## Test: Make Check - PASS Desc: Run 'make check' ############################## Test: Make Distcheck - PASS Desc: Run distcheck to check the distribution ############################## Test: Build w/ext ELL - Configure - PASS Desc: Configure BlueZ source with '--enable-external-ell' configuration ############################## Test: Build w/ext ELL - Make - PASS Desc: Build BlueZ source with '--enable-external-ell' configuration --- Regards, Linux Bluetooth
Hello Mariusz, On Wednesday, 4 August 2021 12:54:46 CEST Mariusz Skamra wrote: > 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 > --- > 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"); Patch applied, thanks.
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");