[PATCH 5/5] Avoid potentially dereferencing a NULL pointer

2012-09-24 Thread Justus Winter
GMIME_IS_MULTIPART and GMIME_IS_MESSAGE both handle NULL pointers
gracefully, but the G_OBJECT_TYPE used in the error handling block
dereferences it without checking it first.

Fix this by checking whether parent->part is valid.

Found using the clang static analyzer.

Signed-off-by: Justus Winter <4winter at informatik.uni-hamburg.de>
---
 mime-node.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mime-node.c b/mime-node.c
index 97e8b48..839737a 100644
--- a/mime-node.c
+++ b/mime-node.c
@@ -291,7 +291,7 @@ mime_node_child (mime_node_t *parent, int child)
 GMimeObject *sub;
 mime_node_t *node;

-if (!parent || child < 0 || child >= parent->nchildren)
+if (!parent || !parent->part || child < 0 || child >= parent->nchildren)
return NULL;

 if (GMIME_IS_MULTIPART (parent->part)) {
-- 
1.7.10.4



[PATCH 5/5] Avoid potentially dereferencing a NULL pointer

2012-09-24 Thread Justus Winter
GMIME_IS_MULTIPART and GMIME_IS_MESSAGE both handle NULL pointers
gracefully, but the G_OBJECT_TYPE used in the error handling block
dereferences it without checking it first.

Fix this by checking whether parent->part is valid.

Found using the clang static analyzer.

Signed-off-by: Justus Winter <4win...@informatik.uni-hamburg.de>
---
 mime-node.c |2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mime-node.c b/mime-node.c
index 97e8b48..839737a 100644
--- a/mime-node.c
+++ b/mime-node.c
@@ -291,7 +291,7 @@ mime_node_child (mime_node_t *parent, int child)
 GMimeObject *sub;
 mime_node_t *node;
 
-if (!parent || child < 0 || child >= parent->nchildren)
+if (!parent || !parent->part || child < 0 || child >= parent->nchildren)
return NULL;
 
 if (GMIME_IS_MULTIPART (parent->part)) {
-- 
1.7.10.4

___
notmuch mailing list
notmuch@notmuchmail.org
http://notmuchmail.org/mailman/listinfo/notmuch