diff --git a/libavdevice/oss_audio.c b/libavdevice/oss_audio.c
index 8876bd2d2474f32523d9d0a20e2a3ac1fe42319b..f3edbdbef0ccb01685ed31162bbfa27544ca89d6 100644
--- a/libavdevice/oss_audio.c
+++ b/libavdevice/oss_audio.c
@@ -248,8 +248,8 @@ static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt)
     int64_t cur_time;
     struct audio_buf_info abufi;
 
-    if (av_new_packet(pkt, s->frame_size) < 0)
-        return AVERROR(EIO);
+    if ((ret=av_new_packet(pkt, s->frame_size)) < 0)
+        return ret;
 
         ret = read(s->fd, pkt->data, pkt->size);
     if (ret <= 0){