Add corner case tests for diff-index and diff-files
[gitweb.git] / diffcore-rename.c
index 3d377251bef8ea843b7a7fa41f98d611daecbcc1..31941bcbbf457fe02097f8c46d25f1f9fc7c4f9f 100644 (file)
@@ -468,10 +468,11 @@ void diffcore_rename(struct diff_options *options)
         */
        if (rename_limit <= 0 || rename_limit > 32767)
                rename_limit = 32767;
-       if (num_create > rename_limit && num_src > rename_limit)
-               goto cleanup;
-       if (num_create * num_src > rename_limit * rename_limit)
+       if ((num_create > rename_limit && num_src > rename_limit) ||
+           (num_create * num_src > rename_limit * rename_limit)) {
+               warning("too many files, skipping inexact rename detection");
                goto cleanup;
+       }
 
        mx = xmalloc(sizeof(*mx) * num_create * num_src);
        for (dst_cnt = i = 0; i < rename_dst_nr; i++) {