From f4c7141f5d2abd06bb90443ad9edc7c1a985eb40 Mon Sep 17 00:00:00 2001 From: nicm Date: Thu, 3 Oct 2019 10:24:05 +0000 Subject: Do not lazily use BUFSIZ for "I don't care what size" when building strings because it is only guaranteed to be 256 bytes and even the default 1024 is not always enough. Reported by Gregory Pakosz. --- cmd-list-keys.c | 2 +- cmd-parse.y | 4 ++-- cmd.c | 2 +- layout-custom.c | 2 +- tty-term.c | 4 ++-- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/cmd-list-keys.c b/cmd-list-keys.c index 57f65c8e..ef862101 100644 --- a/cmd-list-keys.c +++ b/cmd-list-keys.c @@ -61,7 +61,7 @@ cmd_list_keys_exec(struct cmd *self, struct cmdq_item *item) struct key_table *table; struct key_binding *bd; const char *tablename, *r; - char *key, *cp, tmp[BUFSIZ]; + char *key, *cp, tmp[8192]; int repeat, width, tablewidth, keywidth; if (self->entry == &cmd_list_commands_entry) diff --git a/cmd-parse.y b/cmd-parse.y index b0a42f7c..0cd7c6bf 100644 --- a/cmd-parse.y +++ b/cmd-parse.y @@ -1245,7 +1245,7 @@ yylex_token_variable(char **buf, size_t *len) { struct environ_entry *envent; int ch, brackets = 0; - char name[BUFSIZ]; + char name[1024]; size_t namelen = 0; const char *value; @@ -1297,7 +1297,7 @@ yylex_token_tilde(char **buf, size_t *len) { struct environ_entry *envent; int ch; - char name[BUFSIZ]; + char name[1024]; size_t namelen = 0; struct passwd *pw; const char *home = NULL; diff --git a/cmd.c b/cmd.c index bbcd7744..163db73b 100644 --- a/cmd.c +++ b/cmd.c @@ -385,7 +385,7 @@ cmd_find(const char *name, char **cause) { const struct cmd_entry **loop, *entry, *found = NULL; int ambiguous; - char s[BUFSIZ]; + char s[8192]; ambiguous = 0; for (loop = cmd_table; *loop != NULL; loop++) { diff --git a/layout-custom.c b/layout-custom.c index d759c206..4ac90a37 100644 --- a/layout-custom.c +++ b/layout-custom.c @@ -60,7 +60,7 @@ layout_checksum(const char *layout) char * layout_dump(struct layout_cell *root) { - char layout[BUFSIZ], *out; + char layout[8192], *out; *layout = '\0'; if (layout_append(root, layout, sizeof layout) != 0) diff --git a/tty-term.c b/tty-term.c index 774dc9ed..c408d968 100644 --- a/tty-term.c +++ b/tty-term.c @@ -278,7 +278,7 @@ static char * tty_term_strip(const char *s) { const char *ptr; - static char buf[BUFSIZ]; + static char buf[8192]; size_t len; /* Ignore strings with no padding. */ @@ -306,7 +306,7 @@ tty_term_strip(const char *s) static char * tty_term_override_next(const char *s, size_t *offset) { - static char value[BUFSIZ]; + static char value[8192]; size_t n = 0, at = *offset; if (s[at] == '\0') -- cgit