lance.lmw...@gmail.com: > From: Limin Wang <lance.lmw...@gmail.com> > > Signed-off-by: Limin Wang <lance.lmw...@gmail.com> > --- > libavformat/dashenc.c | 23 ++++++----------------- > 1 file changed, 6 insertions(+), 17 deletions(-) > > diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c > index 94d4639..0c281a4 100644 > --- a/libavformat/dashenc.c > +++ b/libavformat/dashenc.c > @@ -1832,27 +1832,16 @@ static void dashenc_delete_file(AVFormatContext *s, > char *filename) { > static int dashenc_delete_segment_file(AVFormatContext *s, const char* file) > { > DASHContext *c = s->priv_data; > - size_t dirname_len, file_len; > - char filename[1024]; > - > - dirname_len = strlen(c->dirname); > - if (dirname_len >= sizeof(filename)) { > - av_log(s, AV_LOG_WARNING, "Cannot delete segments as the directory > path is too long: %"PRIu64" characters: %s\n", > - (uint64_t)dirname_len, c->dirname); > - return AVERROR(ENAMETOOLONG); > - } > + char *filename; > > - memcpy(filename, c->dirname, dirname_len); > - > - file_len = strlen(file); > - if ((dirname_len + file_len) >= sizeof(filename)) { > - av_log(s, AV_LOG_WARNING, "Cannot delete segments as the path is too > long: %"PRIu64" characters: %s%s\n", > - (uint64_t)(dirname_len + file_len), c->dirname, file); > - return AVERROR(ENAMETOOLONG); > + filename = av_asprintf("%s%s", c->dirname, file); > + if (!filename) { > + av_log(s, AV_LOG_WARNING, "Out of memory for filename\n"); > + return AVERROR(ENOMEM); > } > > - memcpy(filename + dirname_len, file, file_len + 1); // include the > terminating zero > dashenc_delete_file(s, filename); > + av_free(filename); > > return 0; > } > It's good to remove these arbitrary restrictions, but you are adding an allocation whereas the old code had none. You can get the best of both approaches by using an AVBPrint.
And the commit title should mention that you remove an arbitrary restriction on the length of filenames. This is more important than the switch from one function to another. - Andreas _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".