summaryrefslogtreecommitdiff
path: root/src/errors.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/errors.c')
-rw-r--r--src/errors.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/errors.c b/src/errors.c
index 7a2600586..979602a2a 100644
--- a/src/errors.c
+++ b/src/errors.c
@@ -125,10 +125,14 @@ int giterr_detach(git_error *cpy)
if (!error)
return -1;
- cpy->message = error->message;
+ if (error == &g_git_oom_error) {
+ cpy->message = git__strdup(error->message);
+ } else {
+ cpy->message = error->message;
+ error->message = NULL;
+ }
cpy->klass = error->klass;
- error->message = NULL;
giterr_clear();
return 0;