diff mbox series

[v2] monitor: Fix truncated server socket path parameter

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

Commit Message

Mariusz Skamra Aug. 4, 2021, 10:54 a.m. UTC
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(-)

Comments

bluez.test.bot@gmail.com Aug. 4, 2021, 11:30 a.m. UTC | #1
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
Szymon Janc Aug. 4, 2021, 2:53 p.m. UTC | #2
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 mbox series

Patch

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");