[libvirt] [PATCH] nwfilter: fix crash when adding non-existing nwfilter

Adding non-existing nwfilter to a network interface device without any nwfilter specified will crash libvirt daemon with segfault. The reason is that the nwfilter is not found an libvirt will try to restore old nwfilter configuration but there is no nwfilter specified. Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/conf/nwfilter_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 074d745..317792e 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2778,7 +2778,7 @@ virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name) for (i = 0; i < nwfilters->count; i++) { virNWFilterObjLock(nwfilters->objs[i]); - if (STREQ(nwfilters->objs[i]->def->name, name)) + if (STREQ_NULLABLE(nwfilters->objs[i]->def->name, name)) return nwfilters->objs[i]; virNWFilterObjUnlock(nwfilters->objs[i]); } -- 2.0.4

On 12/01/2014 09:23 AM, Pavel Hrdina wrote:
Adding non-existing nwfilter to a network interface device without any nwfilter specified will crash libvirt daemon with segfault. The reason is that the nwfilter is not found an libvirt will try to restore old nwfilter configuration but there is no nwfilter specified.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/conf/nwfilter_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
ACK
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 074d745..317792e 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2778,7 +2778,7 @@ virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name)
for (i = 0; i < nwfilters->count; i++) { virNWFilterObjLock(nwfilters->objs[i]); - if (STREQ(nwfilters->objs[i]->def->name, name)) + if (STREQ_NULLABLE(nwfilters->objs[i]->def->name, name)) return nwfilters->objs[i]; virNWFilterObjUnlock(nwfilters->objs[i]); }
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org

On 12/01/2014 10:33 PM, Eric Blake wrote:
On 12/01/2014 09:23 AM, Pavel Hrdina wrote:
Adding non-existing nwfilter to a network interface device without any nwfilter specified will crash libvirt daemon with segfault. The reason is that the nwfilter is not found an libvirt will try to restore old nwfilter configuration but there is no nwfilter specified.
Signed-off-by: Pavel Hrdina <phrdina@redhat.com> --- src/conf/nwfilter_conf.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
ACK
Thanks, pushed now. Pavel
diff --git a/src/conf/nwfilter_conf.c b/src/conf/nwfilter_conf.c index 074d745..317792e 100644 --- a/src/conf/nwfilter_conf.c +++ b/src/conf/nwfilter_conf.c @@ -2778,7 +2778,7 @@ virNWFilterObjFindByName(virNWFilterObjListPtr nwfilters, const char *name)
for (i = 0; i < nwfilters->count; i++) { virNWFilterObjLock(nwfilters->objs[i]); - if (STREQ(nwfilters->objs[i]->def->name, name)) + if (STREQ_NULLABLE(nwfilters->objs[i]->def->name, name)) return nwfilters->objs[i]; virNWFilterObjUnlock(nwfilters->objs[i]); }
participants (2)
-
Eric Blake
-
Pavel Hrdina