diff mbox series

[FFmpeg-devel] libavformat/riffec: Zero-initialize `channels` in `ff_get_wav_header`

Message ID CA+F=P4jBUBywK-XkknshVRZphP1XWGC5axivdgS-=xcySHr3yQ@mail.gmail.com
State New
Headers show
Series [FFmpeg-devel] libavformat/riffec: Zero-initialize `channels` in `ff_get_wav_header` | expand

Checks

Context Check Description
andriy/configure_x86 warning Failed to apply patch

Commit Message

Will Cassella Sept. 9, 2022, 10:50 p.m. UTC
Clang's static analyzer complains that leaving the `channels` variable
uninitialized could lead to a code path where the uninitialized value is
written to `par->ch_layout.nb_channels` at the end of this function.
This patch simply zero-initializes that variable to avoid that.

Signed-off-by: Will Cassella <cassew@google.com>
---
 libavformat/riffdec.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

     if (size < 14) {

Comments

Will Cassella Sept. 20, 2022, 9:52 p.m. UTC | #1
Pinging on this!

On Fri, Sep 9, 2022 at 3:50 PM Will Cassella <cassew@chromium.org> wrote:
>
> Clang's static analyzer complains that leaving the `channels` variable
> uninitialized could lead to a code path where the uninitialized value is
> written to `par->ch_layout.nb_channels` at the end of this function.
> This patch simply zero-initializes that variable to avoid that.
>
> Signed-off-by: Will Cassella <cassew@google.com>
> ---
>  libavformat/riffdec.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
> index 3946ecb72f..fc75500d1f 100644
> --- a/libavformat/riffdec.c
> +++ b/libavformat/riffdec.c
> @@ -94,7 +94,7 @@ static void parse_waveformatex(AVFormatContext *s,
> AVIOContext *pb, AVCodecParam
>  int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb,
>                        AVCodecParameters *par, int size, int big_endian)
>  {
> -    int id, channels;
> +    int id, channels = 0;
>      uint64_t bitrate = 0;
>
>      if (size < 14) {
> --
> 2.37.2.789.g6183377224-goog
James Almer Sept. 20, 2022, 10 p.m. UTC | #2
On 9/9/2022 7:50 PM, Will Cassella wrote:
> Clang's static analyzer complains that leaving the `channels` variable
> uninitialized could lead to a code path where the uninitialized value is
> written to `par->ch_layout.nb_channels` at the end of this function.
> This patch simply zero-initializes that variable to avoid that.
> 
> Signed-off-by: Will Cassella <cassew@google.com>
> ---
>   libavformat/riffdec.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
> index 3946ecb72f..fc75500d1f 100644
> --- a/libavformat/riffdec.c
> +++ b/libavformat/riffdec.c
> @@ -94,7 +94,7 @@ static void parse_waveformatex(AVFormatContext *s,
> AVIOContext *pb, AVCodecParam
>   int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb,
>                         AVCodecParameters *par, int size, int big_endian)
>   {
> -    int id, channels;
> +    int id, channels = 0;
>       uint64_t bitrate = 0;
> 
>       if (size < 14) {

Applied, thanks.
diff mbox series

Patch

diff --git a/libavformat/riffdec.c b/libavformat/riffdec.c
index 3946ecb72f..fc75500d1f 100644
--- a/libavformat/riffdec.c
+++ b/libavformat/riffdec.c
@@ -94,7 +94,7 @@  static void parse_waveformatex(AVFormatContext *s,
AVIOContext *pb, AVCodecParam
 int ff_get_wav_header(AVFormatContext *s, AVIOContext *pb,
                       AVCodecParameters *par, int size, int big_endian)
 {
-    int id, channels;
+    int id, channels = 0;
     uint64_t bitrate = 0;