fixed read error
diff --git a/lib/zstd_compress.c b/lib/zstd_compress.c
index e66fedb..399f811 100644
--- a/lib/zstd_compress.c
+++ b/lib/zstd_compress.c
@@ -1797,6 +1797,7 @@
 static size_t ZSTD_compressBlock_internal(ZSTD_CCtx* zc, void* dst, size_t maxDstSize, const void* src, size_t srcSize)
 {
     ZSTD_blockCompressor blockCompressor = ZSTD_selectBlockCompressor(zc->params.strategy, zc->lowLimit < zc->dictLimit);
+    if (srcSize < MIN_CBLOCK_SIZE+3) return 0;   /* don't even attempt compression below a certain srcSize */
     return blockCompressor(zc, dst, maxDstSize, src, srcSize);
 }
 
@@ -1832,6 +1833,7 @@
         if (cSize == 0)
         {
             cSize = ZSTD_noCompressBlock(op, maxDstSize, ip, blockSize);   /* block is not compressible */
+            if (ZSTD_isError(cSize)) return cSize;
         }
         else
         {
@@ -1928,7 +1930,6 @@
 size_t ZSTD_compressBlock(ZSTD_CCtx* zc, void* dst, size_t maxDstSize, const void* src, size_t srcSize)
 {
     if (srcSize > BLOCKSIZE) return ERROR(srcSize_wrong);
-    if (srcSize < MIN_CBLOCK_SIZE+3) return 0;   /* don't even attempt compression below a certain srcSize */
     return ZSTD_compressContinue_internal(zc, dst, maxDstSize, src, srcSize, 0);
 }