Re: fix str{cpy,cat} and sprintf safety warnings
Martin Pelikan <[email protected]> Mon, 13 Aug 2012 02:27:29 +0200
| Newsgroups | gmane.comp.db.rrdtool.devel |
|---|---|
| Message-ID | <CAEBpdOojjO+2-GbRBBoxYApLmk-2qWJOkffao61Q5JGQMviVjQ@mail.gmail.com> |
2012/8/13, Martin Pelikan <[email protected]>: > @@ -1527,14 +1519,10 @@ > i++; > } else { /* There is already such a name, suppose a mutiple > field */ > cp = ++esp; > - len = > - (strlen(result[k]->value) + (ip - esp) + > - 2) * sizeof(char); > - if ((sptr = (char *) malloc(len)) == NULL) > + len = strlen(result[k]->value) + (ip - esp) + 2; > + if ((sptr = (char *) calloc(len, sizeof(char))) == NULL) > return NULL; > - memset(sptr, 0, len); > - sprintf(sptr, "%s\n", result[k]->value); > - strncat(sptr, cp, ip - esp); > + snprintf(sptr, len, "%s%s\n", result[k]->value, cp); > free(result[k]->value); > result[k]->value = rrdcgiDecodeString(sptr); > } Sorry everyone, this format string should obviously look like "%s\n%s". -- Martin Pelikan