repository: free fields before overwriting them
[gitweb.git] / convert.c
index 1012462e3c9c114ad1b2374a2ae27568ace57bac..c5f0b210370c0ee83ef59298fa2260d627332399 100644 (file)
--- a/convert.c
+++ b/convert.c
@@ -1132,10 +1132,12 @@ int convert_to_git(const struct index_state *istate,
                src = dst->buf;
                len = dst->len;
        }
-       ret |= crlf_to_git(istate, path, src, len, dst, ca.crlf_action, checksafe);
-       if (ret && dst) {
-               src = dst->buf;
-               len = dst->len;
+       if (checksafe != SAFE_CRLF_KEEP_CRLF) {
+               ret |= crlf_to_git(istate, path, src, len, dst, ca.crlf_action, checksafe);
+               if (ret && dst) {
+                       src = dst->buf;
+                       len = dst->len;
+               }
        }
        return ret | ident_to_git(path, src, len, dst, ca.ident);
 }