Pārlūkot izejas kodu

worked around the buffer overrun in smprintf()

master
Ali H. Fardan pirms 8 gadiem
vecāks
revīzija
94a62b864b
1 mainītis faili ar 5 papildinājumiem un 4 dzēšanām
  1. +5
    -4
      slstatus.c

+ 5
- 4
slstatus.c Parādīt failu

@@ -78,14 +78,15 @@ setstatus(const char *str)
static char *
smprintf(const char *fmt, ...)
{
/* FIXME: This code should have
bound checks, it is vulnerable to
buffer overflows */
va_list ap;
char tmp[120];
char *ret = NULL;

va_start(ap, fmt);
if (vasprintf(&ret, fmt, ap) < 0)
vsnprintf(tmp, sizeof(tmp)-1, fmt, ap);
tmp[strlen(tmp)+1] = '\0';

if (asprintf(&ret, "%s", tmp) < 0)
return NULL;

va_end(ap);


Notiek ielāde…
Atcelt
Saglabāt