aboutsummaryrefslogtreecommitdiffstats
path: root/set_error.c
diff options
context:
space:
mode:
Diffstat (limited to 'set_error.c')
-rw-r--r--set_error.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/set_error.c b/set_error.c
index 38617c7..a44aac6 100644
--- a/set_error.c
+++ b/set_error.c
@@ -33,7 +33,12 @@ liberror_set_error(const char description[256], const char source[64], const cha
stpcpy(error->source, source);
stpcpy(error->code_group, code_group);
error->code = code;
- liberror_save_backtrace(error);
+ if (liberror_saved_backtrace) {
+ error->backtrace = liberror_saved_backtrace;
+ liberror_saved_backtrace = NULL;
+ } else {
+ liberror_save_backtrace(error);
+ }
error->cause = cause;
error->failed_to_allocate_cause = have_cause && !cause;
}