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: Martin Storsjö <martin@martin.st>
This commit is contained in:
Martin Storsjö 2012-08-30 23:08:06 +03:00
parent ec36aa6944
commit 372de27df7

View File

@ -70,16 +70,16 @@ int main(int argc, char **argv)
return usage(1);
if (argc > 2)
maxpkts = atoi(argv[2]);
strncpy(fntemplate, argv[1], PATH_MAX - 1);
strncpy(fntemplate, argv[1], sizeof(fntemplate) - 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, '.'))
*strrchr(fntemplate, '.') = '\0';
if (strchr(fntemplate, '%')) {
fprintf(stderr, "can't use filenames containing '%%'\n");
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");
return usage(1);
}
@ -105,7 +105,7 @@ int main(int argc, char **argv)
while ((err = av_read_frame(fctx, &pkt)) >= 0) {
int fd;
snprintf(pktfilename, PATH_MAX - 1, fntemplate, pktnum,
snprintf(pktfilename, sizeof(pktfilename), fntemplate, pktnum,
pkt.stream_index, pkt.pts, pkt.size,
(pkt.flags & AV_PKT_FLAG_KEY) ? 'K' : '_');
printf(PKTFILESUFF "\n", pktnum, pkt.stream_index, pkt.pts, pkt.size,