summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authornicm <nicm>2019-10-03 10:24:05 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2019-11-27 20:48:03 +0000
commit5afe7eb850eeb812bdd92cebf1ab21f45c6dd814 (patch)
tree1868623b7e523374e1aa025650e6e10236427e44
parentb2fd161b071a7076d33119c0ff9aefdd548ff25f (diff)
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.
-rw-r--r--cmd-list-keys.c2
-rw-r--r--cmd-parse.y4
-rw-r--r--cmd.c2
-rw-r--r--layout-custom.c2
-rw-r--r--tty-term.c4
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 6d2b970c..a51e4f6e 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 96cedc97..f77176c9 100644
--- a/cmd.c
+++ b/cmd.c
@@ -384,7 +384,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 7d731d19..d7371292 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 182edd7d..c7c3d11f 100644
--- a/tty-term.c
+++ b/tty-term.c
@@ -281,7 +281,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. */
@@ -309,7 +309,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')