# SDL: Set error for NULL SDL\_IOStream in SDL\_LoadWAV\_IO()

**URL:** <https://discourse.libsdl.org/t/sdl-set-error-for-null-sdl-iostream-in-sdl-loadwav-io/54966>\
**Category:** SDL Commits\
**Created:** [October 15, 2024, 3:07am UTC](https://discourse.libsdl.org/t/sdl-set-error-for-null-sdl-iostream-in-sdl-loadwav-io/54966 "2024-10-15T03:07:05Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![SDLPushPostBot](https://discourse.libsdl.org/user_avatar/discourse.libsdl.org/sdlpushpostbot/32/4370_2.png) [@SDLPushPostBot](https://discourse.libsdl.org/u/SDLPushPostBot)\
**Post date:** [October 15, 2024, 3:07am UTC](https://discourse.libsdl.org/t/sdl-set-error-for-null-sdl-iostream-in-sdl-loadwav-io/54966/1 "2024-10-15T03:07:06Z")

</div>

> <https://github.com/libsdl-org/SDL/commit/fb43dc3097d4c4c8b595ea3baab7955d8713bfbd>

```diff
From fb43dc3097d4c4c8b595ea3baab7955d8713bfbd Mon Sep 17 00:00:00 2001
From: Zack Middleton <[EMAIL REDACTED]>
Date: Mon, 14 Oct 2024 20:51:29 -0500
Subject: [PATCH] Set error for NULL SDL_IOStream in SDL_LoadWAV_IO()

---
 src/audio/SDL_wave.c | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)

diff --git a/src/audio/SDL_wave.c b/src/audio/SDL_wave.c
index 9ce1c85b174b3..2facaaebdc90d 100644
--- a/src/audio/SDL_wave.c
+++ b/src/audio/SDL_wave.c
@@ -2093,7 +2093,8 @@ bool SDL_LoadWAV_IO(SDL_IOStream *src, bool closeio, SDL_AudioSpec *spec, Uint8
 
     // Make sure we are passed a valid data source
     if (!src) {
- goto done; // Error may come from SDL_IOStream.
+ SDL_InvalidParamError("src");
+ goto done;
     } else if (!spec) {
         SDL_InvalidParamError("spec");
         goto done;
@@ -2132,6 +2133,19 @@ bool SDL_LoadWAV_IO(SDL_IOStream *src, bool closeio, SDL_AudioSpec *spec, Uint8
 
 bool SDL_LoadWAV(const char *path, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len)
 {
- return SDL_LoadWAV_IO(SDL_IOFromFile(path, "rb"), 1, spec, audio_buf, audio_len);
+ SDL_IOStream *stream = SDL_IOFromFile(path, "rb");
+ if (!stream) {
+ if (spec) {
+ SDL_zerop(spec);
+ }
+ if (audio_buf) {
+ *audio_buf = NULL;
+ }
+ if (audio_len) {
+ *audio_len = 0;
+ }
+ return false;
+ }
+ return SDL_LoadWAV_IO(stream, true, spec, audio_buf, audio_len);
 }
 

```
