On Wed, Jun 25, 2025 at 09:43:14AM +0800, ld y wrote: > Michael Niedermayer writes: > > > doesnt the failure path here need the free too ? > > int ret = fir_to_phase(s, &h[longer], &n, &post_peak, s->phase); > > if (ret < 0) > > return ret; > > > > I checked fir_to_phase() and found that the only place it allocates memory > in > h[longer] is vis > *h = av_realloc_f(); > > If fir_to_phase() failed after this allocations, then *h must be NULL, > which implies that av_realloc_f() failed. In that case, we don't need to > av_free(h[longer]). However, I still need to double check other allocation > site > in case we need to free more memory. failure of av_tx_init() with your patch results in a leak: ==3653806== 1,260 bytes in 1 blocks are definitely lost in loss record 6 of 14 ==3653806== at 0x483E0F0: memalign (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==3653806== by 0x483E212: posix_memalign (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==3653806== by 0x148AE90: av_malloc (mem.c:107) ==3653806== by 0x148B2A4: av_mallocz (mem.c:258) ==3653806== by 0x148B31B: av_calloc (mem.c:269) ==3653806== by 0x2AD864: make_lpf (asrc_sinc.c:101) ==3653806== by 0x2AE052: lpf (asrc_sinc.c:183) ==3653806== by 0x2AEFD4: config_output (asrc_sinc.c:344) ==3653806== by 0x2DD0C6: ff_filter_config_links (avfilter.c:384) ==3653806== by 0x2E0FBD: graph_config_links (avfiltergraph.c:255) ==3653806== by 0x2E4DFA: avfilter_graph_config (avfiltergraph.c:1303) ==3653806== by 0x297A39: lavfi_read_header (lavfi.c:282) ==3653806== by 0x667DF2: avformat_open_input (demux.c:309) ==3653806== by 0x2512DD: ifile_open (ffmpeg_demux.c:1773) ==3653806== by 0x272B02: open_files (ffmpeg_opt.c:1366) ==3653806== by 0x272D72: ffmpeg_parse_options (ffmpeg_opt.c:1415) ==3653806== by 0x292489: main (ffmpeg.c:991) [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Breaking DRM is a little like attempting to break through a door even though the window is wide open and the only thing in the house is a bunch of things you dont want and which you would get tomorrow for free anyway