To libify `git apply` functionality we have to signal errors to the
caller instead of die()ing.

To do that in a compatible manner with the rest of the error handling
in "builtin/apply.c", die_on_unsafe_path() should return -1 using
error() instead of calling die(), so while doing that let's change
its name to check_unsafe_path().

Signed-off-by: Christian Couder <chrisc...@tuxfamily.org>
---
 builtin/apply.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/builtin/apply.c b/builtin/apply.c
index b506369..429fddd 100644
--- a/builtin/apply.c
+++ b/builtin/apply.c
@@ -3697,7 +3697,7 @@ static int path_is_beyond_symlink(struct apply_state 
*state, const char *name_)
        return ret;
 }
 
-static void die_on_unsafe_path(struct patch *patch)
+static int check_unsafe_path(struct patch *patch)
 {
        const char *old_name = NULL;
        const char *new_name = NULL;
@@ -3709,9 +3709,10 @@ static void die_on_unsafe_path(struct patch *patch)
                new_name = patch->new_name;
 
        if (old_name && !verify_path(old_name))
-               die(_("invalid path '%s'"), old_name);
+               return error(_("invalid path '%s'"), old_name);
        if (new_name && !verify_path(new_name))
-               die(_("invalid path '%s'"), new_name);
+               return error(_("invalid path '%s'"), new_name);
+       return 0;
 }
 
 /*
@@ -3801,8 +3802,8 @@ static int check_patch(struct apply_state *state, struct 
patch *patch)
                }
        }
 
-       if (!state->unsafe_paths)
-               die_on_unsafe_path(patch);
+       if (!state->unsafe_paths && check_unsafe_path(patch))
+               return -1;
 
        /*
         * An attempt to read from or delete a path that is beyond a
-- 
2.9.0.rc2.362.g3cd93d0

--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to