Fix cloning of libraries with Dwarf support
authorPetr Machata <pmachata@redhat.com>
Fri, 25 Jul 2014 10:40:52 +0000 (12:40 +0200)
committerChanho Park <chanho61.park@samsung.com>
Fri, 22 Aug 2014 11:38:26 +0000 (20:38 +0900)
- struct library::dwfl_module was left unitialized after
  library_clone.  Garbage was kept in, which prevented proper
  initialization later, and resulted in segmentation violation.

library.c

index bb0e4cc..a0cd860 100644 (file)
--- a/library.c
+++ b/library.c
@@ -1,6 +1,6 @@
 /*
  * This file is part of ltrace.
- * Copyright (C) 2011,2012,2013 Petr Machata, Red Hat Inc.
+ * Copyright (C) 2011,2012,2013,2014 Petr Machata, Red Hat Inc.
  * Copyright (C) 2001,2009 Juan Cespedes
  * Copyright (C) 2006 Ian Wienand
  *
@@ -20,6 +20,8 @@
  * 02110-1301 USA
  */
 
+#include "config.h"
+
 #include <stdlib.h>
 #include <string.h>
 #include <assert.h>
@@ -559,6 +561,12 @@ library_clone(struct library *retp, struct library *lib)
                goto fail;
        }
 
+#if defined(HAVE_LIBDW)
+       /* Wipe DWFL_MODULE, leave it to proc_add_library to
+        * initialize.  */
+       lib->dwfl_module = NULL;
+#endif
+
        return 0;
 }