diff --git a/libavcodec/exr.c b/libavcodec/exr.c
index 9dd2ee961a809e8c297f0b397b2adb3aa67250c0..250d99fedbdde8a30bcce49a2ec26762599bcf2a 100644
--- a/libavcodec/exr.c
+++ b/libavcodec/exr.c
@@ -768,7 +768,7 @@ static int piz_uncompress(EXRContext *s, const uint8_t *src, int ssize,
     if (min_non_zero <= max_non_zero)
         bytestream2_get_buffer(&gb, td->bitmap + min_non_zero,
                                max_non_zero - min_non_zero + 1);
-    memset(td->bitmap + max_non_zero, 0, BITMAP_SIZE - max_non_zero);
+    memset(td->bitmap + max_non_zero + 1, 0, BITMAP_SIZE - max_non_zero - 1);
 
     maxval = reverse_lut(td->bitmap, td->lut);