Browse code

Fix for infinite loop on crafted xz file.

Steven Morgan authored on 2015/03/13 08:06:23
Showing 1 changed files
... ...
@@ -75,7 +75,7 @@ int cli_XzDecode(struct CLI_XZ *XZ) {
75 75
         return XZ_STREAM_END;
76 76
     if (XZ->status == CODER_STATUS_NOT_FINISHED && XZ->avail_out == 0)
77 77
         return XZ_RESULT_OK;
78
-    if (res != SZ_OK)
78
+    if (((inbytes == 0) && (outbytes == 0)) || res != SZ_OK)
79 79
 	return XZ_RESULT_DATA_ERROR;
80 80
     return XZ_RESULT_OK;
81 81
 }