This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
PR24938, Null Pointer Dereference in debug.c:debug_write_type
- From: Alan Modra <amodra at gmail dot com>
- To: binutils at sourceware dot org
- Date: Mon, 26 Aug 2019 19:51:22 +0930
- Subject: PR24938, Null Pointer Dereference in debug.c:debug_write_type
PR 24938
* debug.c (debug_write_type): Call empty_type for NULL type here..
(debug_write_type): ..rather than in just one case here.
diff --git a/binutils/debug.c b/binutils/debug.c
index 5c984b7550..925d84c07c 100644
--- a/binutils/debug.c
+++ b/binutils/debug.c
@@ -2419,6 +2419,9 @@ debug_write_type (struct debug_handle *info,
int is;
const char *tag = NULL;
+ if (type == DEBUG_TYPE_NULL)
+ return (*fns->empty_type) (fhandle);
+
/* If we have a name for this type, just output it. We only output
typedef names after they have been defined. We output type tags
whenever we are not actually defining them. */
@@ -2481,8 +2484,6 @@ debug_write_type (struct debug_handle *info,
debug_error (_("debug_write_type: illegal type encountered"));
return FALSE;
case DEBUG_KIND_INDIRECT:
- if (*type->u.kindirect->slot == DEBUG_TYPE_NULL)
- return (*fns->empty_type) (fhandle);
return debug_write_type (info, fns, fhandle, *type->u.kindirect->slot,
name);
case DEBUG_KIND_VOID:
--
Alan Modra
Australia Development Lab, IBM