... | ... |
@@ -934,8 +934,16 @@ int cdiff_apply(int fd, unsigned short mode) |
934 | 934 |
logg("!cdiff_apply: Can't resize line buffer to %d bytes\n", line_size); |
935 | 935 |
cdiff_ctx_free(&ctx); |
936 | 936 |
gzclose(gzh); |
937 |
- free(line); |
|
938 |
- free(lbuf); |
|
937 |
+ if(!r1 && !r2) { |
|
938 |
+ free(line); |
|
939 |
+ free(lbuf); |
|
940 |
+ } else if(!r1) { |
|
941 |
+ free(line); |
|
942 |
+ free(r2); |
|
943 |
+ } else { |
|
944 |
+ free(r1); |
|
945 |
+ free(lbuf); |
|
946 |
+ } |
|
939 | 947 |
return -1; |
940 | 948 |
} |
941 | 949 |
line = r1; |