From 041c190799fffc1c893093d3ce8e609b499f7b46 Mon Sep 17 00:00:00 2001 From: ck <84600276+critkitten@users.noreply.github.com> Date: Sun, 18 Jun 2023 17:46:23 +0200 Subject: [PATCH 1/4] =?UTF-8?q?fix=20warning:=20=E2=80=98strndup=E2=80=99?= =?UTF-8?q?=20specified=20bound=204096=20exceeds=20source=20size=202=20[-W?= =?UTF-8?q?stringop-overread]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In function ‘allocate_paths’, inlined from ‘xfer_options_parse_args’ at xfer-options.c:388:8: xfer-options.c:69:34: warning: ‘strndup’ specified bound 4096 exceeds source size 2 [-Wstringop-overread] 69 | xfer->paths[0] = strndup("-", PATH_MAX); | ^~~~~~~~~~~~~~~~~~~~~~ --- axfer/xfer-options.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/axfer/xfer-options.c b/axfer/xfer-options.c index 3740b1665..bb26bbda4 100644 --- a/axfer/xfer-options.c +++ b/axfer/xfer-options.c @@ -66,12 +66,12 @@ static int allocate_paths(struct xfer_context *xfer, char *const *paths, xfer->path_count = count; if (stdio) { - xfer->paths[0] = strndup("-", PATH_MAX); + xfer->paths[0] = strndup("-", strlen("-")); if (xfer->paths[0] == NULL) return -ENOMEM; } else { for (i = 0; i < count; ++i) { - xfer->paths[i] = strndup(paths[i], PATH_MAX); + xfer->paths[i] = strndup(paths[i], strlen(paths[i])); if (xfer->paths[i] == NULL) return -ENOMEM; } From 32b5f633769c1d28bfa42f041e8299973fdec07c Mon Sep 17 00:00:00 2001 From: ck <84600276+critkitten@users.noreply.github.com> Date: Sun, 18 Jun 2023 17:56:17 +0200 Subject: [PATCH 2/4] fix ssize_t bytes_written; if (receive_file != -1) { bytes_written = write(receive_file, buf, length); if (bytes_written != length) { // handle the error, e.g., print an error message or break the loop error("write() failed: fix ssize_t bytes_written; if (receive_file != -1) { bytes_written = write(receive_file, buf, length); if (bytes_written != length) { // handle the error, e.g., print an error message or brea --- amidi/amidi.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/amidi/amidi.c b/amidi/amidi.c index ae2143c21..d67dffbb0 100644 --- a/amidi/amidi.c +++ b/amidi/amidi.c @@ -728,9 +728,18 @@ int main(int argc, char *argv[]) if (length == 0) continue; read += length; + + ssize_t bytes_written; + + if (receive_file != -1) { + bytes_written = write(receive_file, buf, length); + if (bytes_written != length) { + // handle the error, e.g., print an error message or break the loop + error("write() failed: %s", strerror(errno)); + break; + } + } - if (receive_file != -1) - write(receive_file, buf, length); if (dump) { for (i = 0; i < length; ++i) print_byte(buf[i], &ts); From 71b5ee6aee53a399bf2474e41ee5368ae1768543 Mon Sep 17 00:00:00 2001 From: ck <84600276+critkitten@users.noreply.github.com> Date: Sun, 18 Jun 2023 18:03:38 +0200 Subject: [PATCH 3/4] =?UTF-8?q?fix=20utils.c:94:15:=20warning:=20ignoring?= =?UTF-8?q?=20return=20value=20of=20=E2=80=98write=E2=80=99=20declared=20w?= =?UTF-8?q?ith=20attribute=20=E2=80=98warn=5Funused=5Fresult=E2=80=99=20[-?= =?UTF-8?q?Wunused-result]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix utils.c:94:15: warning: ignoring return value of ‘write’ declared with attribute ‘warn_unused_result’ [-Wunused-result] --- alsactl/utils.c | 62 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 44 insertions(+), 18 deletions(-) diff --git a/alsactl/utils.c b/alsactl/utils.c index d8cbf5355..090ffe152 100644 --- a/alsactl/utils.c +++ b/alsactl/utils.c @@ -81,24 +81,50 @@ size_t line_width(const char *buf, size_t bufsize, size_t pos) void initfailed(int cardnumber, const char *reason, int exitcode) { - int fp; - char *str; - char sexitcode[16]; - - if (statefile == NULL) - return; - if (snd_card_get_name(cardnumber, &str) < 0) - return; - sprintf(sexitcode, "%i", exitcode); - fp = open(statefile, O_WRONLY|O_CREAT|O_APPEND, 0644); - (void)write(fp, str, strlen(str)); - (void)write(fp, ":", 1); - (void)write(fp, reason, strlen(reason)); - (void)write(fp, ":", 1); - (void)write(fp, sexitcode, strlen(sexitcode)); - (void)write(fp, "\n", 1); - close(fp); - free(str); + int fp; + char *str; + char sexitcode[16]; + ssize_t bytes_written; + + if (statefile == NULL) + return; + if (snd_card_get_name(cardnumber, &str) < 0) + return; + sprintf(sexitcode, "%i", exitcode); + fp = open(statefile, O_WRONLY|O_CREAT|O_APPEND, 0644); + + bytes_written = write(fp, str, strlen(str)); + if (bytes_written != strlen(str)) { + // Handle error + } + + bytes_written = write(fp, ":", 1); + if (bytes_written != 1) { + // Handle error + } + + bytes_written = write(fp, reason, strlen(reason)); + if (bytes_written != strlen(reason)) { + // Handle error + } + + bytes_written = write(fp, ":", 1); + if (bytes_written != 1) { + // Handle error + } + + bytes_written = write(fp, sexitcode, strlen(sexitcode)); + if (bytes_written != strlen(sexitcode)) { + // Handle error + } + + bytes_written = write(fp, "\n", 1); + if (bytes_written != 1) { + // Handle error + } + + close(fp); + free(str); } static void syslog_(int prio, const char *fcn, long line, From 62b4073ccdf0ec1b0cef32156856d4ec770dda03 Mon Sep 17 00:00:00 2001 From: ck <84600276+critkitten@users.noreply.github.com> Date: Sun, 18 Jun 2023 18:09:17 +0200 Subject: [PATCH 4/4] Update utils.c spaces --- alsactl/utils.c | 88 ++++++++++++++++++++++++------------------------- 1 file changed, 44 insertions(+), 44 deletions(-) diff --git a/alsactl/utils.c b/alsactl/utils.c index 090ffe152..fd9e71d65 100644 --- a/alsactl/utils.c +++ b/alsactl/utils.c @@ -81,50 +81,50 @@ size_t line_width(const char *buf, size_t bufsize, size_t pos) void initfailed(int cardnumber, const char *reason, int exitcode) { - int fp; - char *str; - char sexitcode[16]; - ssize_t bytes_written; - - if (statefile == NULL) - return; - if (snd_card_get_name(cardnumber, &str) < 0) - return; - sprintf(sexitcode, "%i", exitcode); - fp = open(statefile, O_WRONLY|O_CREAT|O_APPEND, 0644); - - bytes_written = write(fp, str, strlen(str)); - if (bytes_written != strlen(str)) { - // Handle error - } - - bytes_written = write(fp, ":", 1); - if (bytes_written != 1) { - // Handle error - } - - bytes_written = write(fp, reason, strlen(reason)); - if (bytes_written != strlen(reason)) { - // Handle error - } - - bytes_written = write(fp, ":", 1); - if (bytes_written != 1) { - // Handle error - } - - bytes_written = write(fp, sexitcode, strlen(sexitcode)); - if (bytes_written != strlen(sexitcode)) { - // Handle error - } - - bytes_written = write(fp, "\n", 1); - if (bytes_written != 1) { - // Handle error - } - - close(fp); - free(str); + int fp; + char *str; + char sexitcode[16]; + ssize_t bytes_written; + + if (statefile == NULL) + return; + if (snd_card_get_name(cardnumber, &str) < 0) + return; + sprintf(sexitcode, "%i", exitcode); + fp = open(statefile, O_WRONLY|O_CREAT|O_APPEND, 0644); + + bytes_written = write(fp, str, strlen(str)); + if (bytes_written != strlen(str)) { + // Handle error + } + + bytes_written = write(fp, ":", 1); + if (bytes_written != 1) { + // Handle error + } + + bytes_written = write(fp, reason, strlen(reason)); + if (bytes_written != strlen(reason)) { + // Handle error + } + + bytes_written = write(fp, ":", 1); + if (bytes_written != 1) { + // Handle error + } + + bytes_written = write(fp, sexitcode, strlen(sexitcode)); + if (bytes_written != strlen(sexitcode)) { + // Handle error + } + + bytes_written = write(fp, "\n", 1); + if (bytes_written != 1) { + // Handle error + } + + close(fp); + free(str); } static void syslog_(int prio, const char *fcn, long line,