diff --git a/src/hybrid_decoder.c b/src/hybrid_decoder.c
index 27f4d0e2d125384345082ab7d780b958430bd2d3..c733369df82183b753536af3d672b57ca07c3ef7 100644
--- a/src/hybrid_decoder.c
+++ b/src/hybrid_decoder.c
@@ -165,6 +165,8 @@ void hybrid_decoder_ctl(HybridDecoder *st, int request, ...)
             fprintf(stderr, "unknown hybrid_decoder_ctl() request: %d", request);
             break;
     }
+
+    va_end(ap);
 }
 
 void hybrid_decoder_destroy(HybridDecoder *st)
diff --git a/src/hybrid_encoder.c b/src/hybrid_encoder.c
index 18036299613d56e735cb6fcd1b869ef09227b711..2761327da71db6284656e34867e4a2db348a673e 100644
--- a/src/hybrid_encoder.c
+++ b/src/hybrid_encoder.c
@@ -220,6 +220,8 @@ void hybrid_encoder_ctl(HybridEncoder *st, int request, ...)
             fprintf(stderr, "unknown hybrid_encoder_ctl() request: %d", request);
             break;
     }
+
+    va_end(ap);
 }
 
 void hybrid_encoder_destroy(HybridEncoder *st)