View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000358 | file | General | public | 2022-06-12 21:48 | 2022-07-04 17:01 |
Reporter | jpalus | Assigned To | christos | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Product Version | 5.42 | ||||
Fixed in Version | 5.43 | ||||
Summary | 0000358: filenames in output limited to single char when reading files from stdin (5.42 regression) | ||||
Description | When reading files from stdin file 5.42 cuts filename in output to single char (see "c" instead of whole "configure.ac"): ``` $ echo configure.ac|./src/file -m magic/magic.mgc -f - c: M4 macro processor script, ASCII text ``` Appears to be regression introduced by: https://github.com/file/file/commit/f448f3e5c37de8c285ac14b032b2bdcea82fc08b where `inname` is now passed to `file_printable` before printing, however last parameter `wid`, that should be length on `inname` is always `1` for input from stdin. | ||||
Tags | No tags attached. | ||||
|
The problem is that stdin can't be rewound, therefore the check for the longest filename size doesn't work. The code is aware of this, but "fixes" it by hardcoding 1. The attached patch should fix it correctly. file-5.42-fix-size-of-lines-read-from-stdin.patch (689 bytes)
diff -up file-5.42/src/file.c.omv~ file-5.42/src/file.c --- file-5.42/src/file.c.omv~ 2022-06-14 14:41:32.708884703 +0200 +++ file-5.42/src/file.c 2022-06-14 14:40:40.436535597 +0200 @@ -509,7 +509,7 @@ unwrap(struct magic_set *ms, const char if (strcmp("-", fn) == 0) { f = stdin; - wid = 1; + wid = 0; } else { if ((f = fopen(fn, "r")) == NULL) { file_warn("Cannot open `%s'", fn); @@ -530,7 +530,7 @@ unwrap(struct magic_set *ms, const char while ((len = getline(&line, &llen, f)) > 0) { if (line[len - 1] == '\n') line[len - 1] = '\0'; - e |= process(ms, line, wid); + e |= process(ms, line, (wid > 0) ? wid : file_mbswidth(ms, line)); } free(line); |
|
Fixed, thanks! |
Date Modified | Username | Field | Change |
---|---|---|---|
2022-06-12 21:48 | jpalus | New Issue | |
2022-06-14 12:56 | bero | Note Added: 0003764 | |
2022-06-14 12:56 | bero | File Added: file-5.42-fix-size-of-lines-read-from-stdin.patch | |
2022-07-04 17:00 | christos | Assigned To | => christos |
2022-07-04 17:00 | christos | Status | new => assigned |
2022-07-04 17:01 | christos | Status | assigned => resolved |
2022-07-04 17:01 | christos | Resolution | open => fixed |
2022-07-04 17:01 | christos | Fixed in Version | => 5.43 |
2022-07-04 17:01 | christos | Note Added: 0003776 |