Commit 372de27d authored by Martin Storsjö's avatar Martin Storsjö

pktdumper: Use sizeof(variable) instead of the direct buffer length

Also change the snprintf size to use the full buffer, since
snprintf always null-terminates the buffer.
Signed-off-by: 's avatarMartin Storsjö <martin@martin.st>
parent ec36aa69
...@@ -70,16 +70,16 @@ int main(int argc, char **argv) ...@@ -70,16 +70,16 @@ int main(int argc, char **argv)
return usage(1); return usage(1);
if (argc > 2) if (argc > 2)
maxpkts = atoi(argv[2]); maxpkts = atoi(argv[2]);
strncpy(fntemplate, argv[1], PATH_MAX - 1); strncpy(fntemplate, argv[1], sizeof(fntemplate) - 1);
if (strrchr(argv[1], '/')) if (strrchr(argv[1], '/'))
strncpy(fntemplate, strrchr(argv[1], '/') + 1, PATH_MAX - 1); strncpy(fntemplate, strrchr(argv[1], '/') + 1, sizeof(fntemplate) - 1);
if (strrchr(fntemplate, '.')) if (strrchr(fntemplate, '.'))
*strrchr(fntemplate, '.') = '\0'; *strrchr(fntemplate, '.') = '\0';
if (strchr(fntemplate, '%')) { if (strchr(fntemplate, '%')) {
fprintf(stderr, "can't use filenames containing '%%'\n"); fprintf(stderr, "can't use filenames containing '%%'\n");
return usage(1); return usage(1);
} }
if (strlen(fntemplate) + sizeof(PKTFILESUFF) >= PATH_MAX - 1) { if (strlen(fntemplate) + sizeof(PKTFILESUFF) >= sizeof(fntemplate) - 1) {
fprintf(stderr, "filename too long\n"); fprintf(stderr, "filename too long\n");
return usage(1); return usage(1);
} }
...@@ -105,7 +105,7 @@ int main(int argc, char **argv) ...@@ -105,7 +105,7 @@ int main(int argc, char **argv)
while ((err = av_read_frame(fctx, &pkt)) >= 0) { while ((err = av_read_frame(fctx, &pkt)) >= 0) {
int fd; int fd;
snprintf(pktfilename, PATH_MAX - 1, fntemplate, pktnum, snprintf(pktfilename, sizeof(pktfilename), fntemplate, pktnum,
pkt.stream_index, pkt.pts, pkt.size, pkt.stream_index, pkt.pts, pkt.size,
(pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_'); (pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_');
printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size, printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment