diff mbox series

[FFmpeg-devel,1/8] libavdevice/v4l2.c: fix build warning

Message ID 20210220072218.31629-1-yejun.guo@intel.com
State New
Headers show
Series [FFmpeg-devel,1/8] libavdevice/v4l2.c: fix build warning | expand

Checks

Context Check Description
andriy/x86_make success Make finished
andriy/x86_make_fate success Make fate finished
andriy/PPC64_make success Make finished
andriy/PPC64_make_fate success Make fate finished

Commit Message

Guo, Yejun Feb. 20, 2021, 7:22 a.m. UTC
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);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
---
This patch set fixes build warnings during make on my system
with gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
with config option:
--disable-optimizations --enable-libx264 --enable-libx265 --enable-gpl --enable-libvpx --enable-libmfx --extra-cflags="-Wno-deprecated-declarations"

I also tried '-Wall -Werror', there are many many issues starting from
configure. It is a long term task, let's fix one by one when have time.

 libavdevice/v4l2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Anton Khirnov Feb. 24, 2021, 2:04 p.m. UTC | #1
Quoting Guo, Yejun (2021-02-20 08:22:11)
> 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);
>          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ---
> This patch set fixes build warnings during make on my system
> with gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)
> with config option:
> --disable-optimizations --enable-libx264 --enable-libx265 --enable-gpl --enable-libvpx --enable-libmfx --extra-cflags="-Wno-deprecated-declarations"
> 
> I also tried '-Wall -Werror', there are many many issues starting from
> configure. It is a long term task, let's fix one by one when have time.
> 
>  libavdevice/v4l2.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
> index 365bacd771..15ade26eed 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[261];

sizeof(entry->d_name) + 5
would be eaiser to read IMO
Guo, Yejun Feb. 24, 2021, 3:15 p.m. UTC | #2
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Anton
> Khirnov
> Sent: 2021年2月24日 22:05
> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 1/8] libavdevice/v4l2.c: fix build warning
> 
> Quoting Guo, Yejun (2021-02-20 08:22:11)
> > 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);
> >
> >
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> ~
> > ---
> > This patch set fixes build warnings during make on my system with gcc
> > version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) with config option:
> > --disable-optimizations --enable-libx264 --enable-libx265 --enable-gpl
> --enable-libvpx --enable-libmfx --extra-cflags="-Wno-deprecated-declarations"
> >
> > I also tried '-Wall -Werror', there are many many issues starting from
> > configure. It is a long term task, let's fix one by one when have time.
> >
> >  libavdevice/v4l2.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index
> > 365bacd771..15ade26eed 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[261];
> 
> sizeof(entry->d_name) + 5
> would be eaiser to read IMO

yes, will update the patches, and send all with V2 except patch 7 which has been fixed with 1c9e53d7
Guo, Yejun Feb. 25, 2021, 2:23 a.m. UTC | #3
> -----Original Message-----
> From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of Guo,
> Yejun
> Sent: 2021年2月24日 23:15
> To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
> Subject: Re: [FFmpeg-devel] [PATCH 1/8] libavdevice/v4l2.c: fix build warning
> 
> 
> 
> > -----Original Message-----
> > From: ffmpeg-devel <ffmpeg-devel-bounces@ffmpeg.org> On Behalf Of
> Anton
> > Khirnov
> > Sent: 2021年2月24日 22:05
> > To: FFmpeg development discussions and patches
> <ffmpeg-devel@ffmpeg.org>
> > Subject: Re: [FFmpeg-devel] [PATCH 1/8] libavdevice/v4l2.c: fix build warning
> >
> > Quoting Guo, Yejun (2021-02-20 08:22:11)
> > > 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);
> > >
> > >
> >
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > ~
> > > ---
> > > This patch set fixes build warnings during make on my system with gcc
> > > version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04) with config option:
> > > --disable-optimizations --enable-libx264 --enable-libx265 --enable-gpl
> > --enable-libvpx --enable-libmfx --extra-cflags="-Wno-deprecated-declarations"
> > >
> > > I also tried '-Wall -Werror', there are many many issues starting from
> > > configure. It is a long term task, let's fix one by one when have time.
> > >
> > >  libavdevice/v4l2.c | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c index
> > > 365bacd771..15ade26eed 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[261];
> >
> > sizeof(entry->d_name) + 5
> > would be eaiser to read IMO
> 
> yes, will update the patches, and send all with V2 except patch 7 which has
> been fixed with 1c9e53d7

just think we might better to use char device_name[512] which is more intuitive
and it reserves the memory (local variable) in case that the following code is 
changed to add more chars.
diff mbox series

Patch

diff --git a/libavdevice/v4l2.c b/libavdevice/v4l2.c
index 365bacd771..15ade26eed 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[261];
 
         if (!v4l2_is_v4l_dev(entry->d_name))
             continue;