about summary refs log tree commit diff
path: root/src/libbacktrace
diff options
context:
space:
mode:
authorVadim Petrochenkov <vadim.petrochenkov@gmail.com>2017-02-04 01:18:10 +0300
committerVadim Petrochenkov <vadim.petrochenkov@gmail.com>2017-02-04 01:18:10 +0300
commitd14b268b9d0f37811c47cc6b1ebf2433fbb0ad0e (patch)
treeb8b12889c31b5d7289025e4bdd2b004c8e8f3b81 /src/libbacktrace
parentb4abb72ef0bda4092ca81610d310081d78f51d2a (diff)
downloadrust-d14b268b9d0f37811c47cc6b1ebf2433fbb0ad0e.tar.gz
rust-d14b268b9d0f37811c47cc6b1ebf2433fbb0ad0e.zip
libbacktrace: Fix uninitialized variable
Diffstat (limited to 'src/libbacktrace')
-rw-r--r--src/libbacktrace/pecoff.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/libbacktrace/pecoff.c b/src/libbacktrace/pecoff.c
index 04e0bafb149..2d6a9877219 100644
--- a/src/libbacktrace/pecoff.c
+++ b/src/libbacktrace/pecoff.c
@@ -607,7 +607,9 @@ coff_add (struct backtrace_state *state, int descriptor,
   //       against the upstream libbacktrace, that's what's going on.
   uint32_t str_size;
   off_t str_off;
-  struct backtrace_view syms_view;
+  // NOTE: upstream doesn't have `{0}`, this is a fix for Rust issue #39468.
+  //       If syms_view is not initialized, then `free(syms_view.base)` may segfault later.
+  struct backtrace_view syms_view = {0};
   off_t syms_off;
   size_t syms_size;
   int syms_view_valid;