Mercurial > hg > mlmmj
changeset 351:370a584ade9d
Fix invalid write by 1 in cleanquotedp.
author | mmj |
---|---|
date | Tue, 09 Nov 2004 22:02:50 +1100 |
parents | f88b108b82b6 |
children | 8173978c2bfd |
files | include/strgen.h src/strgen.c |
diffstat | 2 files changed, 9 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/include/strgen.h Tue Nov 09 19:40:48 2004 +1100 +++ b/include/strgen.h Tue Nov 09 22:02:50 2004 +1100 @@ -33,6 +33,6 @@ char *hostnamestr(void); char *mydirname(const char *path); char *mybasename(const char *path); -char *cleanquotedp(char *qpstr); +char *cleanquotedp(const char *qpstr); #endif /* STRGEN_H */
--- a/src/strgen.c Tue Nov 09 19:40:48 2004 +1100 +++ b/src/strgen.c Tue Nov 09 22:02:50 2004 +1100 @@ -177,17 +177,22 @@ return ret; } -char *cleanquotedp(char *qpstr) +char *cleanquotedp(const char *qpstr) { - char *retstr = mymalloc(strlen(qpstr)); - char qc[3], *c = qpstr; + char *retstr; + char qc[3]; + const char *c = qpstr; long qcval; int i = 0; + size_t len; /* XXX: We only use this function for checking whether the subject * prefix is only present, so the recoding is neither guaranteed * complete nor correct */ + len = strlen(qpstr); + retstr = mymalloc(len + 1); + retstr[len] = '\0'; qc[2] = '\0'; while(*c != '\0') { switch(*c) {