diff --git a/libavformat/nuv.c b/libavformat/nuv.c
index f56d116ff16081f7067e18808d517d5083b9615c..88765af9f5d4298bf1dfb8c942b9b48477c78948 100644
--- a/libavformat/nuv.c
+++ b/libavformat/nuv.c
@@ -149,6 +149,8 @@ static int nuv_header(AVFormatContext *s, AVFormatParameters *ap) {
     if (v_packs) {
         ctx->v_id = stream_nr++;
         vst = av_new_stream(s, ctx->v_id);
+        if (!vst)
+            return AVERROR(ENOMEM);
         vst->codec->codec_type = CODEC_TYPE_VIDEO;
         vst->codec->codec_id = CODEC_ID_NUV;
         vst->codec->width = width;
@@ -163,6 +165,8 @@ static int nuv_header(AVFormatContext *s, AVFormatParameters *ap) {
     if (a_packs) {
         ctx->a_id = stream_nr++;
         ast = av_new_stream(s, ctx->a_id);
+        if (!ast)
+            return AVERROR(ENOMEM);
         ast->codec->codec_type = CODEC_TYPE_AUDIO;
         ast->codec->codec_id = CODEC_ID_PCM_S16LE;
         ast->codec->channels = 2;