Skip to content

Commit 0a25a02

Browse files
committed
Fix the wrong use of snprintf which is introduced in 1d2f619
1 parent 62d8620 commit 0a25a02

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

ext/fileinfo/libmagic.patch

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -316,8 +316,6 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c
316316
apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
317317
const char *fn, int action)
318318
{
319-
- int errs = 0;
320-
+ int errs = 0, mflen = 0;
321319
struct magic_entry *marray;
322320
uint32_t marraycount, i, mentrycount = 0, starttest;
323321
- size_t slen, files = 0, maxfiles = 0;
@@ -356,7 +354,7 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c
356354
}
357355
while ((d = readdir(dir)) != NULL) {
358356
- if (asprintf(&mfn, "%s/%s", fn, d->d_name) < 0) {
359-
+ if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) {
357+
+ if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) {
360358
file_oomem(ms,
361359
strlen(fn) + strlen(d->d_name) + 2);
362360
errs++;
@@ -379,7 +377,7 @@ diff -u libmagic.origin/apprentice.c libmagic/apprentice.c
379377
}
380378
}
381379
- filearr[files++] = mfn;
382-
+ filearr[files++] = estrndup(mfn, mflen);
380+
+ filearr[files++] = estrndup(mfn);
383381
}
384382
closedir(dir);
385383
qsort(filearr, files, sizeof(*filearr), cmpstrp);

ext/fileinfo/libmagic/apprentice.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -753,7 +753,7 @@ private int
753753
apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
754754
const char *fn, int action)
755755
{
756-
int errs = 0, mflen = 0;
756+
int errs = 0;
757757
struct magic_entry *marray;
758758
uint32_t marraycount, i, mentrycount = 0, starttest;
759759
size_t files = 0, maxfiles = 0;
@@ -782,7 +782,7 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
782782
goto out;
783783
}
784784
while ((d = readdir(dir)) != NULL) {
785-
if ((mflen = snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name)) < 0) {
785+
if (snprintf(mfn, sizeof(mfn), "%s/%s", fn, d->d_name) < 0) {
786786
file_oomem(ms,
787787
strlen(fn) + strlen(d->d_name) + 2);
788788
errs++;
@@ -804,7 +804,7 @@ apprentice_load(struct magic_set *ms, struct magic **magicp, uint32_t *nmagicp,
804804
goto out;
805805
}
806806
}
807-
filearr[files++] = estrndup(mfn, mflen);
807+
filearr[files++] = estrdup(mfn);
808808
}
809809
closedir(dir);
810810
qsort(filearr, files, sizeof(*filearr), cmpstrp);

0 commit comments

Comments
 (0)