(/home/sate/Testcases/c/cve/wireshark-1.2.0/plugins/asn1/packet-asn1.c) |
| |
| 2562 | | | get_values(void) |
| 2563 | | | |
| 2564 | | | { |
| 2565 | | | |
| 2566 | | | GNode *p; |
| 2567 | | | SearchDef sd; |
| 2568 | | | NameDefs nd; |
| 2569 | | | guint i; |
| 2570 | | | char X; |
| 2571 | | | const char *t, *s, *E; |
| 2572 | | | static char missing[] = " **missing** "; |
| 2573 | | | |
| 2574 | | | if (asn1_verbose) g_message("interpreting tree");
x /usr/include/glib-2.0/glib/gmessages.h |
| |
147 | #define g_message(...) g_log (G_LOG_DOMAIN, \ |
148 | G_LOG_LEVEL_MESSAGE, \ |
149 | __VA_ARGS__) |
| |
|
Event 1:
Skipping " if". asn1_verbose evaluates to false.
hide
|
|
| 2575 | | | typeDef_names = 0; |
| 2576 | | | |
| 2577 | | | if (data_nodes) { |
Event 2:
Skipping " if". data_nodes evaluates to false.
hide
|
|
| 2578 | | | g_node_traverse(data_nodes, G_POST_ORDER, G_TRAVERSE_ALL, -1, |
| 2579 | | | free_node_data, NULL); |
| 2580 | | | g_node_destroy(data_nodes); |
| 2581 | | | } |
| 2582 | | | |
| 2583 | | | data_nodes = g_node_new(0); |
| 2584 | | | |
| 2585 | | | p = g_node_first_child(asn1_nodes);
x /usr/include/glib-2.0/glib/gnode.h |
| |
280 | #define g_node_first_child(node) ((node) ? \ |
281 | ((GNode*) (node))->children : NULL) |
| |
|
Event 4:
asn1_nodes evaluates to false.
hide
|
|
| 2586 | | | |
| 2587 | | | p = g_node_first_child(p);
x /usr/include/glib-2.0/glib/gnode.h |
| |
280 | #define g_node_first_child(node) ((node) ? \ |
281 | ((GNode*) (node))->children : NULL) |
| |
|
Event 5:
p evaluates to false.
hide
Event 6:
p is set to p ? ((GNode *)p)->children : (void *)0, which evaluates to NULL. - Dereferenced later, causing the null pointer dereference.
hide
|
|
| 2588 | | | TT.totalNumModules = get_asn1_uint(GPOINTER_TO_UINT(p->data)); |
Null Pointer Dereference
p is dereferenced here, but it is NULL. The issue can occur if the highlighted code executes. See related event 6. Show: All events | Only primary events |
|
| |