diff options
Diffstat (limited to 'backport-Explicitly-override-only-newlines.patch')
| -rw-r--r-- | backport-Explicitly-override-only-newlines.patch | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/backport-Explicitly-override-only-newlines.patch b/backport-Explicitly-override-only-newlines.patch new file mode 100644 index 0000000..a1fc8c6 --- /dev/null +++ b/backport-Explicitly-override-only-newlines.patch @@ -0,0 +1,55 @@ +From ffc480c2e93f05266e4b130229877ad13f71a8c0 Mon Sep 17 00:00:00 2001 +From: Samanta Navarro <ferivoz@riseup.net> +Date: Mon, 30 Jan 2023 11:53:47 +0000 +Subject: [PATCH] Explicitly override only newlines + +Override only newlines with '\0' to avoid undesired truncation of +actual line content. + +Signed-off-by: Samanta Navarro <ferivoz@riseup.net> +--- + lib/port.c | 6 +++--- + libmisc/console.c | 3 ++- + 2 files changed, 5 insertions(+), 4 deletions(-) + +diff --git a/lib/port.c b/lib/port.c +index 0bea2ef4..90eb1498 100644 +--- a/lib/port.c ++++ b/lib/port.c +@@ -130,8 +130,8 @@ static struct port *getportent (void) + again: + + /* +- * Get the next line and remove the last character, which +- * is a '\n'. Lines which begin with '#' are all ignored. ++ * Get the next line and remove optional trailing '\n'. ++ * Lines which begin with '#' are all ignored. + */ + + if (fgets (buf, (int) sizeof buf, ports) == 0) { +@@ -149,7 +149,7 @@ static struct port *getportent (void) + * TTY devices. + */ + +- buf[strlen (buf) - 1] = 0; ++ buf[strcspn (buf, "\n")] = 0; + + port.pt_names = ttys; + for (cp = buf, j = 0; j < PORT_TTY; j++) { +diff --git a/libmisc/console.c b/libmisc/console.c +index bc024eba..63d3ceb3 100644 +--- a/libmisc/console.c ++++ b/libmisc/console.c +@@ -71,7 +71,8 @@ static bool is_listed (const char *cfgin, const char *tty, bool def) + */ + + while (fgets (buf, (int) sizeof (buf), fp) != NULL) { +- buf[strlen (buf) - 1] = '\0'; ++ /* Remove optional trailing '\n'. */ ++ buf[strcspn (buf, "\n")] = '\0'; + if (strcmp (buf, tty) == 0) { + (void) fclose (fp); + return true; +-- +2.27.0 + |
