[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 03/12] qobject: Protect against use-after-free in qob
From: |
Markus Armbruster |
Subject: |
[Qemu-devel] [PULL 03/12] qobject: Protect against use-after-free in qobject_decref() |
Date: |
Mon, 9 Nov 2015 18:46:35 +0100 |
From: Eric Blake <address@hidden>
Adding an assertion to qobject_decref() will ensure that a
programming error causing use-after-free will result in
immediate failure (provided no other thread has started
using the memory) instead of silently attempting to wrap
refcnt around and leaving the problem to potentially bite
later at a harder point to diagnose.
Suggested-by: Markus Armbruster <address@hidden>
Signed-off-by: Eric Blake <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Markus Armbruster <address@hidden>
---
include/qapi/qmp/qobject.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/qapi/qmp/qobject.h b/include/qapi/qmp/qobject.h
index c856f55..4b96ed5 100644
--- a/include/qapi/qmp/qobject.h
+++ b/include/qapi/qmp/qobject.h
@@ -90,6 +90,7 @@ static inline void qobject_incref(QObject *obj)
*/
static inline void qobject_decref(QObject *obj)
{
+ assert(!obj || obj->refcnt);
if (obj && --obj->refcnt == 0) {
assert(obj->type != NULL);
assert(obj->type->destroy != NULL);
--
2.4.3
- [Qemu-devel] [PULL 00/12] QAPI patches, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 02/12] qapi: Strengthen test of TestStructList, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 09/12] qapi: Test failure in middle of array parse, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 04/12] qapi: Share test_init code in test-qmp-input*, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 01/12] qapi: Use generated TestStruct machinery in tests, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 11/12] qapi: Provide nicer array names in introspection, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 03/12] qobject: Protect against use-after-free in qobject_decref(),
Markus Armbruster <=
- [Qemu-devel] [PULL 10/12] qapi: More tests of input arrays, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 05/12] qapi: Plug leaks in test-qmp-*, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 08/12] qapi: More tests of alternate output, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 12/12] qapi-introspect: Document lack of sorting, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 07/12] qapi: Simplify error cleanup in test-qmp-*, Markus Armbruster, 2015/11/09
- [Qemu-devel] [PULL 06/12] qapi: Simplify non-error testing in test-qmp-*, Markus Armbruster, 2015/11/09