--- src/ne_md5.c +++ src/ne_md5.c @@ -472,8 +472,10 @@ sum += n; } while (sum < BLOCKSIZE && n != 0); - if (n == 0 && ferror (stream)) + if (n == 0 && ferror (stream)) { + ne_md5_destroy_ctx (ctx); return 1; + } /* If end of file is reached, end the loop. */ if (n == 0)