From f9b9515c86e83c50709d52606f54f801155d33b0 Mon Sep 17 00:00:00 2001 From: vboxsync Date: Fri, 28 Apr 2023 14:30:50 +0000 Subject: Audio: Improved range checks for audio channels (PDMAUDIO_MAX_CHANNELS). git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@99559 cfe28804-0f27-0410-a406-dd0f0b0b656f --- include/VBox/vmm/pdmaudioinline.h | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'include') diff --git a/include/VBox/vmm/pdmaudioinline.h b/include/VBox/vmm/pdmaudioinline.h index 52665d2ecf9..61c7f39eff5 100644 --- a/include/VBox/vmm/pdmaudioinline.h +++ b/include/VBox/vmm/pdmaudioinline.h @@ -406,6 +406,8 @@ DECLINLINE(void) PDMAudioPropsSetDefaultChannelIds(PPDMAUDIOPCMPROPS pProps) */ DECLINLINE(void) PDMAudioPropsInit(PPDMAUDIOPCMPROPS pProps, uint8_t cbSample, bool fSigned, uint8_t cChannels, uint32_t uHz) { + Assert(cChannels <= PDMAUDIO_MAX_CHANNELS); + pProps->cbFrame = cbSample * cChannels; pProps->cbSampleX = cbSample; pProps->cChannelsX = cChannels; @@ -428,6 +430,7 @@ DECLINLINE(void) PDMAudioPropsInit(PPDMAUDIOPCMPROPS pProps, uint8_t cbSample, b DECLINLINE(void) PDMAudioPropsInitEx(PPDMAUDIOPCMPROPS pProps, uint8_t cbSample, bool fSigned, uint8_t cChannels, uint32_t uHz, bool fLittleEndian, bool fRaw) { + Assert(cChannels <= PDMAUDIO_MAX_CHANNELS); Assert(!fRaw || cbSample == sizeof(int64_t)); pProps->cbFrame = cbSample * cChannels; pProps->cbSampleX = cbSample; @@ -502,6 +505,7 @@ DECLINLINE(uint32_t) PDMAudioPropsGetBitrate(PCPDMAUDIOPCMPROPS pProps) */ DECL_FORCE_INLINE(uint8_t) PDMAudioPropsChannels(PCPDMAUDIOPCMPROPS pProps) { + AssertReturn(pProps->cChannelsX <= PDMAUDIO_MAX_CHANNELS, PDMAUDIO_MAX_CHANNELS); return pProps->cChannelsX; } -- cgit v1.2.1