summaryrefslogtreecommitdiff
path: root/Kernel/Devices/Audio/SB16.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Kernel/Devices/Audio/SB16.cpp')
-rw-r--r--Kernel/Devices/Audio/SB16.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/Kernel/Devices/Audio/SB16.cpp b/Kernel/Devices/Audio/SB16.cpp
index e5bfef119d..ce2cdc8d63 100644
--- a/Kernel/Devices/Audio/SB16.cpp
+++ b/Kernel/Devices/Audio/SB16.cpp
@@ -123,9 +123,10 @@ ErrorOr<void> SB16::ioctl(OpenFileDescription&, unsigned request, Userspace<void
return copy_to_user(output, &m_sample_rate);
}
case SOUNDCARD_IOCTL_SET_SAMPLE_RATE: {
- auto sample_rate_value = static_cast<u16>(arg.ptr());
- if (sample_rate_value == 0)
- return EINVAL;
+ auto sample_rate_input = static_cast<u32>(arg.ptr());
+ if (sample_rate_input == 0 || sample_rate_input > 44100)
+ return ENOTSUP;
+ auto sample_rate_value = static_cast<u16>(sample_rate_input);
if (m_sample_rate != sample_rate_value)
set_sample_rate(sample_rate_value);
return {};