diff options
author | Xinchen Hui <laruence@php.net> | 2012-09-10 23:08:54 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@php.net> | 2012-09-10 23:08:54 +0800 |
commit | 0a25a0241ed1c90b83d71b94a45b841e74e68c98 (patch) | |
tree | b9def5ad3e7bd627371eb71413b5e8ad611b1294 | |
parent | 62d86209cf83b6b1288b0c7567ace45b5be6025b (diff) | |
download | php-git-0a25a0241ed1c90b83d71b94a45b841e74e68c98.tar.gz |
Fix the wrong use of snprintf which is introduced in 1d2f61904987133d542c68cd349cf313d0bef1c8
-rw-r--r-- | ext/fileinfo/libmagic.patch | 6 | ||||
-rw-r--r-- | ext/fileinfo/libmagic/apprentice.c | 6 |
2 files changed, 5 insertions, 7 deletions
diff --git a/ext/fileinfo/libmagic.patch b/ext/fileinfo/libmagic.patch index 30364fb978..1fc656ef1e 100644 --- a/ext/fileinfo/libmagic.patch +++ b/ext/fileinfo/libmagic.patch @@ -316,8 +316,6 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, const char *fn, int action) { -- int errs = 0; -+ int errs = 0, mflen = 0; struct magic_entry *marray; uint32_t marraycount, i, mentrycount = 0, starttest; - size_t slen, files = 0, maxfiles = 0; @@ -356,7 +354,7 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c } while ((d = readdir(dir)) != NULL) { - if (asprintf(&mfn, "%s/%s", fn, d->d_name) < 0) { -+ if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) { ++ if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) { file_oomem(ms, strlen(fn) + strlen(d->d_name) + 2); errs++; @@ -379,7 +377,7 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c } } - filearr[files++] = mfn; -+ filearr[files++] = estrndup(mfn, mflen); ++ filearr[files++] = estrndup(mfn); } closedir(dir); qsort(filearr, files, sizeof(*filearr), cmpstrp); diff --git a/ext/fileinfo/libmagic/apprentice.c b/ext/fileinfo/libmagic/apprentice.c index 98bde27a2d..f5f99395a3 100644 --- a/ext/fileinfo/libmagic/apprentice.c +++ b/ext/fileinfo/libmagic/apprentice.c @@ -753,7 +753,7 @@ private int apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, const char *fn, int action) { - int errs = 0, mflen = 0; + int errs = 0; struct magic_entry *marray; uint32_t marraycount, i, mentrycount = 0, starttest; size_t files = 0, maxfiles = 0; @@ -782,7 +782,7 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, goto out; } while ((d = readdir(dir)) != NULL) { - if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) { + if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) { file_oomem(ms, strlen(fn) + strlen(d->d_name) + 2); errs++; @@ -804,7 +804,7 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp, goto out; } } - filearr[files++] = estrndup(mfn, mflen); + filearr[files++] = estrdup(mfn); } closedir(dir); qsort(filearr, files, sizeof(*filearr), cmpstrp); |