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
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");
--
2.31.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
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.
--
pozdrawiam
Szymon Janc