No check for conn->uri being NULL in virAuthGetConfigFilePath (valid state) made the client segfault. This happens for example with these settings: - no virtualbox driver installed (modifies conn->uri) - no default URI set (VIRSH_DEFAULT_CONNECT_URI="", LIBVIRT_DEFAULT_URI="", uri_default="") - auth_sock_rw="sasl" - virsh run as root
That are unfortunately the settings with fresh Fedora 17 installation with VDSM. The check ought to be enough as conn->uri being NULL is valid in later code and is handled properly. --- v2: - copyright modified properly this time src/util/virauth.c | 19 +++++++++++-------- 1 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/util/virauth.c b/src/util/virauth.c index e6b1db0..5539c3c 100644 --- a/src/util/virauth.c +++ b/src/util/virauth.c @@ -1,6 +1,7 @@ /* * virauth.c: authentication related utility functions * + * Copyright (C) 2012 Red Hat, Inc. * Copyright (C) 2010 Matthias Bolte <matthias.bo...@googlemail.com> * * This library is free software; you can redistribute it and/or @@ -54,14 +55,16 @@ int virAuthGetConfigFilePath(virConnectPtr conn, return 0; } - for (i = 0 ; i < conn->uri->paramsCount ; i++) { - if (STREQ_NULLABLE(conn->uri->params[i].name, "authfile") && - conn->uri->params[i].value) { - VIR_DEBUG("Using path from URI '%s'", - conn->uri->params[i].value); - if (!(*path = strdup(conn->uri->params[i].value))) - goto no_memory; - return 0; + if (conn && conn->uri) { + for (i = 0 ; i < conn->uri->paramsCount ; i++) { + if (STREQ_NULLABLE(conn->uri->params[i].name, "authfile") && + conn->uri->params[i].value) { + VIR_DEBUG("Using path from URI '%s'", + conn->uri->params[i].value); + if (!(*path = strdup(conn->uri->params[i].value))) + goto no_memory; + return 0; + } } } -- 1.7.8.6 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list