Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb4a9779 authored by Vinod Koul's avatar Vinod Koul Committed by Takashi Iwai
Browse files

ALSA: Compress - add codec parameter checks

parent 4dc040a0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -72,6 +72,7 @@
#define SND_AUDIOCODEC_IEC61937              ((__u32) 0x0000000B)
#define SND_AUDIOCODEC_G723_1                ((__u32) 0x0000000C)
#define SND_AUDIOCODEC_G729                  ((__u32) 0x0000000D)
#define SND_AUDIOCODEC_MAX                   SND_AUDIOCODEC_G729

/*
 * Profile and modes are listed with bit masks. This allows for a
+10 −0
Original line number Diff line number Diff line
@@ -432,6 +432,16 @@ static int snd_compress_check_input(struct snd_compr_params *params)
			params->buffer.fragments > SIZE_MAX / params->buffer.fragment_size)
		return -EINVAL;

	/* now codec parameters */
	if (params->codec.id == 0 || params->codec.id > SND_AUDIOCODEC_MAX)
		return -EINVAL;

	if (params->codec.ch_in == 0 || params->codec.ch_out == 0)
		return -EINVAL;

	if (!(params->codec.sample_rate & SNDRV_PCM_RATE_8000_192000))
		return -EINVAL;

	return 0;
}