Skip to content

mpeg_encode: Do not free() stack allocated frame

Stefan Brüns requested to merge private/fix_free_of_stack_allocated_frame into master

Frame_Resize is only called from ReadFrame in readframe.cpp, mf/tempFrame being an object allocated on the stack.

Found by GCC static analysis:

[ 1099s] In function 'Frame_Resize',
[ 1099s]     inlined from 'ReadFrame.constprop' at /home/abuild/rpmbuild/BUILD/gmsh-4.8.3-source/contrib/mpeg_encode/readframe.cpp:382:19:
[ 1099s] /home/abuild/rpmbuild/BUILD/gmsh-4.8.3-source/contrib/mpeg_encode/frame.cpp:127:5: warning: 'free' called on unallocated object 'tempFrame' [-Wfree-nonheap-object]
[ 1099s]   127 | free(mf);
[ 1099s]       |     ^
[ 1099s] /home/abuild/rpmbuild/BUILD/gmsh-4.8.3-source/contrib/mpeg_encode/frame.cpp: In function 'ReadFrame.constprop':
[ 1099s] /home/abuild/rpmbuild/BUILD/gmsh-4.8.3-source/contrib/mpeg_encode/readframe.cpp:242:18: note: declared here
[ 1099s]   242 |     MpegFrame    tempFrame;
[ 1099s]       |                  ^

Merge request reports