support/kconfig: fix compiler warnings

Compiling on Ubuntu 20.04 generates this:

./util.c: In function ‘file_write_dep’
./util.c:54:18: warning: ‘..config.tmp’ directive writing 12 bytes into a region of size between 1 and 4097 [-Wformat-overflow=]
   54 |  sprintf(buf, "%s..config.tmp", dir);
      |                  ^~~~~~~~~~~~
./util.c:54:2: note: ‘sprintf’ output between 13 and 4109 bytes into a destination of size 4097
   54 |  sprintf(buf, "%s..config.tmp", dir);
      |  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

and similar warnings on confdata.c, lines 778, 989, 995, 1000, 1007,
1040, 1046 and 1054. Avoid the warnings by enlarging the destination
buffer of fprintf().

Normally, we want changes to kconfig to be reflected by patches in
support/kconfig/patches. This makes it easier to resync with upstream
kconfig. However, in this case, everything that is changed here is
already changed completely (and differently) upstream, so there is no
added value in keeping the patch.

Signed-off-by: Edgar Bonet <bonet@grenoble.cnrs.fr>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
This commit is contained in:
Edgar Bonet 2021-09-22 16:08:58 +02:00 committed by Arnout Vandecappelle (Essensium/Mind)
parent 0ae5ca9b67
commit 324612d68e
2 changed files with 3 additions and 3 deletions

View File

@ -744,7 +744,7 @@ int conf_write(const char *name)
struct menu *menu; struct menu *menu;
const char *basename; const char *basename;
const char *str; const char *str;
char dirname[PATH_MAX+1], tmpname[PATH_MAX+1], newname[PATH_MAX+1]; char dirname[PATH_MAX+1], tmpname[PATH_MAX+20], newname[PATH_MAX+1];
char *env; char *env;
if (!name) if (!name)
@ -974,7 +974,7 @@ int conf_write_autoconf(void)
const char *name; const char *name;
FILE *out, *tristate, *out_h; FILE *out, *tristate, *out_h;
int i; int i;
char dir[PATH_MAX+1], buf[PATH_MAX+1]; char dir[PATH_MAX+1], buf[PATH_MAX+20];
char *s; char *s;
strcpy(dir, conf_get_configname()); strcpy(dir, conf_get_configname());

View File

@ -35,7 +35,7 @@ struct file *file_lookup(const char *name)
int file_write_dep(const char *name) int file_write_dep(const char *name)
{ {
char *str; char *str;
char buf[PATH_MAX+1], buf2[PATH_MAX+1], dir[PATH_MAX+1]; char buf[PATH_MAX+20], buf2[PATH_MAX+1], dir[PATH_MAX+1];
struct symbol *sym, *env_sym; struct symbol *sym, *env_sym;
struct expr *e; struct expr *e;
struct file *file; struct file *file;