diff --git a/lib/decompress_unlzo.c b/lib/decompress_unlzo.c
index 6e56d547ba32849666cbb1abc2a2f7e194fee1d5..855d9d30ec4577300a128bf5d17f4f5c380362af 100644
--- a/lib/decompress_unlzo.c
+++ b/lib/decompress_unlzo.c
@@ -187,8 +187,8 @@ STATIC inline int INIT unlzo(u8 *input, int in_len,
 			}
 		}
 
-		if (flush)
-			flush(out_buf, dst_len);
+		if (flush && flush(out_buf, dst_len) != dst_len)
+			goto exit_2;
 		if (output)
 			out_buf += dst_len;
 		if (posp)