[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals
From: |
Tim Hardeck |
Subject: |
[Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals |
Date: |
Tue, 9 Oct 2012 17:21:41 +0200 |
When calling QTAILQ_REMOVE or QLIST_REMOVE on an unitialized list
QEMU segfaults.
Check for this case specifically on item removal.
Signed-off-by: Tim Hardeck <address@hidden>
---
qemu-queue.h | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/qemu-queue.h b/qemu-queue.h
index 9288cd8..47ed239 100644
--- a/qemu-queue.h
+++ b/qemu-queue.h
@@ -141,7 +141,9 @@ struct {
\
if ((elm)->field.le_next != NULL) \
(elm)->field.le_next->field.le_prev = \
(elm)->field.le_prev; \
- *(elm)->field.le_prev = (elm)->field.le_next; \
+ if ((elm)->field.le_prev != NULL) { \
+ *(elm)->field.le_prev = (elm)->field.le_next; \
+ } \
} while (/*CONSTCOND*/0)
#define QLIST_FOREACH(var, head, field) \
@@ -381,7 +383,9 @@ struct {
\
(elm)->field.tqe_prev; \
else \
(head)->tqh_last = (elm)->field.tqe_prev; \
- *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
+ if ((elm)->field.tqe_prev != NULL) { \
+ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \
+ } \
} while (/*CONSTCOND*/0)
#define QTAILQ_FOREACH(var, head, field) \
--
1.7.10.4
- [Qemu-devel] [PATCH 0/2] fix segfaults triggered by failed vnc handshakes, Tim Hardeck, 2012/10/09
- [Qemu-devel] [PATCH 0/2] fix segfaults triggered by failed vnc handshakes, Tim Hardeck, 2012/10/14
- [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Tim Hardeck, 2012/10/14
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Andreas Färber, 2012/10/17
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Tim Hardeck, 2012/10/17
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Kevin Wolf, 2012/10/18
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Andreas Färber, 2012/10/18
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Peter Maydell, 2012/10/18
- Re: [Qemu-devel] [PATCH 2/2] qemu queue: fix uninitialized removals, Peter Maydell, 2012/10/18
[Qemu-devel] [PATCH 1/2] vnc: fix segfault due to failed handshake, Tim Hardeck, 2012/10/14