Message ID | 1401481582-26007-1-git-send-email-ehabkost@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Il 30/05/2014 22:26, Eduardo Habkost ha scritto: > We need to ensure ret < 0 when going through the error path, or QEMU may > try to run the half-initialized VM and crash. > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> > --- > kvm-all.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/kvm-all.c b/kvm-all.c > index 721a390..4e19eff 100644 > --- a/kvm-all.c > +++ b/kvm-all.c > @@ -1410,7 +1410,7 @@ int kvm_init(MachineClass *mc) > > ret = kvm_ioctl(s, KVM_GET_API_VERSION, 0); > if (ret < KVM_API_VERSION) { > - if (ret > 0) { > + if (ret >= 0) { > ret = -EINVAL; > } > fprintf(stderr, "kvm version too old\n"); > @@ -1461,6 +1461,7 @@ int kvm_init(MachineClass *mc) > if (mc->kvm_type) { > type = mc->kvm_type(kvm_type); > } else if (kvm_type) { > + ret = -EINVAL; > fprintf(stderr, "Invalid argument kvm-type=%s\n", kvm_type); > goto err; > } > @@ -1561,6 +1562,7 @@ int kvm_init(MachineClass *mc) > return 0; > > err: > + assert(ret < 0); > if (s->vmfd >= 0) { > close(s->vmfd); > } > Applied, thanks. Paolo -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/kvm-all.c b/kvm-all.c index 721a390..4e19eff 100644 --- a/kvm-all.c +++ b/kvm-all.c @@ -1410,7 +1410,7 @@ int kvm_init(MachineClass *mc) ret = kvm_ioctl(s, KVM_GET_API_VERSION, 0); if (ret < KVM_API_VERSION) { - if (ret > 0) { + if (ret >= 0) { ret = -EINVAL; } fprintf(stderr, "kvm version too old\n"); @@ -1461,6 +1461,7 @@ int kvm_init(MachineClass *mc) if (mc->kvm_type) { type = mc->kvm_type(kvm_type); } else if (kvm_type) { + ret = -EINVAL; fprintf(stderr, "Invalid argument kvm-type=%s\n", kvm_type); goto err; } @@ -1561,6 +1562,7 @@ int kvm_init(MachineClass *mc) return 0; err: + assert(ret < 0); if (s->vmfd >= 0) { close(s->vmfd); }
We need to ensure ret < 0 when going through the error path, or QEMU may try to run the half-initialized VM and crash. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> --- kvm-all.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)