On Wed, Sep 23, 2020 at 04:42:37PM +0530, Bhupesh Sharma wrote:
> This patch fixes the following snprintf related compilation warning
> seen currently with gcc versions 7 and 8 when kexec is compiled with
> -Wformat-truncation option:
> 
>     kexec/fs2dt.c:673:34: warning: ‘stdout-path’ directive output may be 
> truncated writing 11 bytes into a region of size between 1 and 1024 
> [-Wformat-truncation=]
>        snprintf(filename, MAXPATH, "%sstdout-path", pathname);
>                                       ^~~~~~~~~~~
>     kexec/fs2dt.c:673:3: note: ‘snprintf’ output between 12 and 1035 bytes 
> into a destination of size 1024
>        snprintf(filename, MAXPATH, "%sstdout-path", pathname);
>        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     kexec/fs2dt.c:676:35: warning: ‘linux,stdout-path’ directive output may 
> be truncated writing 17 bytes into a region of size between 1 and 1024 
> [-Wformat-truncation=]
>         snprintf(filename, MAXPATH, "%slinux,stdout-path", pathname);
>                                        ^~~~~~~~~~~~~~~~~
>     kexec/fs2dt.c:676:4: note: ‘snprintf’ output between 18 and 1041 bytes 
> into a destination of size 1024
>         snprintf(filename, MAXPATH, "%slinux,stdout-path", pathname);
>         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
>     kexec/firmware_memmap.c:132:35: warning: ‘%s’ directive output may be 
> truncated writing 5 bytes into a region of size between 0 and 4095 
> [-Wformat-truncation=]
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "start");
>                                        ^~          ~~~~~~~
>     kexec/firmware_memmap.c:132:2: note: ‘snprintf’ output between 7 and 4102 
> bytes into a destination of size 4096
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "start");
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     kexec/firmware_memmap.c:142:35: warning: ‘%s’ directive output may be 
> truncated writing 3 bytes into a region of size between 0 and 4095 
> [-Wformat-truncation=]
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "end");
>                                        ^~          ~~~~~
>     kexec/firmware_memmap.c:142:2: note: ‘snprintf’ output between 5 and 4100 
> bytes into a destination of size 4096
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "end");
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>     kexec/firmware_memmap.c:152:35: warning: ‘%s’ directive output may be 
> truncated writing 4 bytes into a region of size between 0 and 4095 
> [-Wformat-truncation=]
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "type");
>                                        ^~          ~~~~~~
>     kexec/firmware_memmap.c:152:2: note: ‘snprintf’ output between 6 and 4101 
> bytes into a destination of size 4096
>       snprintf(filename, PATH_MAX, "%s/%s", entry, "type");
>       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 
> Since the simplest method to address the gcc warnings and possible
> truncation would be to check the return value provided from snprintf
> (well there are other methods like using 'asnprintf' or using
> 'open_memstream' function to create the FILE object, but these are more
> intrusive), so this patch does the same.
> 
> Cc: Simon Horman <[email protected]>
> Cc: Eric Biederman <[email protected]>
> Cc: [email protected]
> Signed-off-by: Bhupesh Sharma <[email protected]>

Thanks, applied.

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to