Skip to content

Commit 761e2a7

Browse files
committed
fix broken filename if path is exactly 100 characters long
1 parent 4f6e7db commit 761e2a7

File tree

2 files changed

+5
-3
lines changed

2 files changed

+5
-3
lines changed

genext2fs.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -167,7 +167,7 @@ struct fslayer {
167167
};
168168

169169
#define TAR_BLOCKSIZE 512
170-
#define TAR_FULLFILENAME (100 + 155)
170+
#define TAR_FULLFILENAME (100 + 155 + 1)
171171

172172
struct tar_header {
173173
char filename[100];
@@ -2321,7 +2321,9 @@ add2fs_from_tarball(filesystem *fs, uint32 this_nod, FILE * fh, int squash_uids,
23212321
path = longname;
23222322
has_longname = 0;
23232323
} else {
2324-
snprintf(pathbuf, sizeof pathbuf, "%s%s", tarhead->prefix, tarhead->filename);
2324+
strncpy(pathbuf, tarhead->prefix, sizeof tarhead->prefix);
2325+
strncpy(pathbuf+strnlen(pathbuf, sizeof pathbuf), tarhead->filename, sizeof tarhead->filename);
2326+
pathbuf[strnlen(pathbuf, sizeof pathbuf - 1)] = '\0';
23252327
path = pathbuf;
23262328
}
23272329
if (stats)

test.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,4 +86,4 @@ ftest 3db16dd57bd15c1c80dd6bc900411c58 4096 default device_table.txt
8686
ltest c21b5a3cad405197e821ba7143b0ea9b 200 1024 123456789 device_table_link.txt
8787
ltest 18b04b4bea2f7ebf315a116be5b92589 200 1024 1234567890 device_table_link.txt
8888
ltest 8aaed693b75dbdf77607f376d661027a 200 4096 12345678901 device_table_link.txt
89-
atest 2dc494bb633cdd5e56a2ac8209f6dfbc 200 1024 H4sIAAAAAAAAA+3W32qDMBQG8FzvKfIE+X+S51GGrMw2YBW2t19qBrJd1BZ6LJvf7yZFhRz5POlRWrAzRSKa1+L3Ov+2PiayxifjyvWULAlJ/KUJMZ3HZpBSDDmP155bu/9HKX3+PPaH07saP7jeb84/pdX8LdlAqXwnNrjghXRdzrptBsbSkL9+a4ZX3g/gEnAM4Ur+tORPseTvXFmk4Snnp53n3/ZT+/LsIuBplO4OXebdY73/l/M/Rl/631BMQkbesqqd97/Sp6nvefe4J/9E4XL+m2iE9LxlVY/Kv76H/V43Kf0RSv+XIYt3j1vn/+X/35C1mP+3UPPnHbLv6f+afyjngJB2i+F05/kDAAAAAAAAAAAAAMD/8wXpgh0JACgAAA==
89+
atest 994ca42d3179c88263af777bedec0c55 200 1024 H4sIAAAAAAAAA+3WTW6DMBAF4Fn3FD6B8fj3PKAqahQSSwSk9vY1uKssGiJliFretzECJAYeY1s3JM4UKYRlLG7H5ZhdTIHZGevK+ZTYkgrypRFN17EdlKIh5/G3++5d/6N004qbA47er8/fWVduV2aLD7D7/A85C88Ba/ufA/sQIhk25VdA/2+h5t+1gx4/pd7vfv+Hm/ytmfNH/8vr+ql7e3UR8DK6uUx9L/uMtev/3P8p+KX/oyHlZMuqntX/9T34Z9yk9Gco8//xkGWf8Uj+Mbpl/Y+JVJQtq9r5/K+bj3Z474+Xk9wG4JH86/rvyzxAirfYnOw+/+vXWTb+uv9PaV3+JfiSv/WOlJVPf/f5AwAAAAAAAAAAAMD/9A0cPbO/ACgAAA==

0 commit comments

Comments
 (0)