fix strncmp bug by using strcmp - scroll - scrollbackbuffer program for st
git clone git://git.suckless.org/scroll
Log
Files
Refs
README
LICENSE
---
commit 91d126eabe33630163d15f9bb423ca95f95333f4
parent 6e7406cde8b517ecee582856ffbaaaea63e98661
Author: Jan Klemkow 
Date:   Tue, 14 Apr 2020 22:40:50 +0200

fix strncmp bug by using strcmp

if input is just a single ESC character, strncmp
just compares the first char of the constant string.

Diffstat:
  M scroll.c                            |       6 ++++--

1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/scroll.c b/scroll.c
@@ -506,18 +506,20 @@ main(int argc, char *argv[])
                 }
  out:
                 if (pfd[1].revents & POLLIN) {
-                        ssize_t n = read(mfd, input, sizeof input);
+                        ssize_t n = read(mfd, input, sizeof(input)-1);
 
                         if (n == -1 && errno != EINTR)
                                 die("read:");
                         if (n == 0)        /* on exit of child we continue here */
                                 continue; /* let signal handler catch SIGCHLD */
 
+                        input[n] = '\0';
+
                         if (write(STDOUT_FILENO, input, n) == -1)
                                 die("write:");
 
                         /* don't save clear screen esc sequences in log */
-                        if (strncmp("\033[H\033[2J", input, n) == 0)
+                        if (strcmp("\033[H\033[2J", input) == 0)
                                 continue;
 
                         /* iterate over the input buffer */