Commit c2f17bda by Michael Procter

Ensure static oom error message not detached

Error messages that are detached are assumed to be dynamically
allocated.  Passing a pointer to the static oom error message
can cause an attempt to free the static buffer later.  This change
checks if the oom error message is about to be detached and detaches
a copy instead.
parent 5ef4b860
...@@ -125,10 +125,14 @@ int giterr_detach(git_error *cpy) ...@@ -125,10 +125,14 @@ int giterr_detach(git_error *cpy)
if (!error) if (!error)
return -1; 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; cpy->klass = error->klass;
error->message = NULL;
giterr_clear(); giterr_clear();
return 0; return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment