Guo, Yejun (12021-02-26): > Here is the warning message: > src/libavdevice/v4l2.c: In function ‘v4l2_get_device_list’: > src/libavdevice/v4l2.c:1054:58: warning: ‘%s’ directive output may be > truncated writing up to 255 bytes into a region of size 251 > [-Wformat-truncation=] > snprintf(device_name, sizeof(device_name), "/dev/%s", entry->d_name); > ^~ > src/libavdevice/v4l2.c:1054:9: note: ‘snprintf’ output between 6 and 261 > bytes into a destination of size 256 > snprintf(device_name, sizeof(device_name), "/dev/%s", entry->d_name); > ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > > Signed-off-by: Guo, Yejun <yejun....@intel.com> > --- > libavdevice/v4l2.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c > index 365bacd771..cb426cf2d5 100644 > --- a/libavdevice/v4l2.c > +++ b/libavdevice/v4l2.c > @@ -1046,7 +1046,7 @@ static int v4l2_get_device_list(AVFormatContext *ctx, > AVDeviceInfoList *device_l > return ret; > } > while ((entry = readdir(dir))) { > - char device_name[256];
> + char device_name[sizeof(entry->d_name) + 5]; Unfortunately, that is not guaranteed to work: entry->d_name can be declared as char d_name[0] and the space dynamically allocated at the end of the structure. I think a better course of action would be to acknowledge that this warning is a waste of time and disable it. That does not mean we should not fix the cases where the buffer can be too small. We should, and we will find them without this warning, by making use of common sense. This instance is not one, because even with a billion webcams, /dev/video999999999 fits in 256 chars. > > if (!v4l2_is_v4l_dev(entry->d_name)) > continue; Regards, -- Nicolas George
signature.asc
Description: PGP signature
_______________________________________________ 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".