diff --git a/libavcodec/xan.c b/libavcodec/xan.c
index eda6a4679d903c632ed7888536391e4d99bb312b..fbd383f39b7b3e8d3767cca23bd6fb11c647a198 100644
--- a/libavcodec/xan.c
+++ b/libavcodec/xan.c
@@ -559,6 +559,7 @@ static av_cold int xan_decode_end(AVCodecContext *avctx)
 
     av_freep(&s->buffer1);
     av_freep(&s->buffer2);
+    av_freep(&s->palettes);
 
     return 0;
 }