On Mon, 29 Apr 2024, Nils Goroll wrote: > Before this patch, the implementation of pipe: inputs/outputs would > silently fall back to stdin/stdout for any argument not successfully > parsed by strtol(). > > This patch introduces an explicit error for any non-numerical arguments, > which should avoid user confusion as in #10977. > > New behavior: > > $ cat /tmp/video.mkv | ./ffmpeg -i pipe:aa -acodec copy -vcodec copy -f > matroska pipe:1 | cat >/tmp/out.mkv > > [pipe @ 0x5618c7bcf740] Non-numerical argument "aa" to pipe: > [in#0 @ 0x5618c7bced00] Error opening input: Invalid argument > Error opening input file pipe:aa. > Error opening input files: Invalid argument OK in principle, but the patch is a bit overcomplicated and is mixing cosmetic and functional changes. See a simplifed version attached, will apply that in a few days. Thanks, Marton > > Signed-off-by: Nils Goroll > --- > libavformat/file.c | 19 +++++++++++-------- > 1 file changed, 11 insertions(+), 8 deletions(-) > > diff --git a/libavformat/file.c b/libavformat/file.c > index 0b7452bc20..317a769e32 100644 > --- a/libavformat/file.c > +++ b/libavformat/file.c > @@ -437,18 +437,21 @@ static int pipe_open(URLContext *h, const char > *filename, int flags) > { > FileContext *c = h->priv_data; > int fd; > - char *final; > + char *final = NULL; > if (c->fd < 0) { > av_strstart(filename, "pipe:", &filename); > - fd = strtol(filename, &final, 10); > - if((filename == final) || *final ) {/* No digits found, or something > like 10ab */ > - if (flags & AVIO_FLAG_WRITE) { > - fd = 1; > - } else { > - fd = 0; > - } > + if (*filename == '\0') > + fd = (flags & AVIO_FLAG_WRITE) ? 1 : 0; > + else > + fd = strtol(filename, &final, 10); > + > + if (final != NULL && *final != '\0') { > + av_log(h, AV_LOG_ERROR, > + "Non-numerical argument \"%s\" to pipe:\n", > + filename); > + return AVERROR(EINVAL); > } > c->fd = fd; > } > -- > 2.39.2 > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > https://ffmpeg.org/mailman/listinfo/ffmpeg-devel > > To unsubscribe, visit link above, or email > ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe". > >