Message ID | 1472663145-1835-3-git-send-email-lcapitulino@redhat.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On 31/08/2016 19:05, Luiz Capitulino wrote: > Memory and debugfs entries are leaked on error. Fix it. > > Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> > --- > virt/kvm/kvm_main.c | 10 +++++++--- > 1 file changed, 7 insertions(+), 3 deletions(-) > > diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c > index c1dc45e..9293285 100644 > --- a/virt/kvm/kvm_main.c > +++ b/virt/kvm/kvm_main.c > @@ -585,12 +585,12 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, int fd) > sizeof(*kvm->debugfs_stat_data), > GFP_KERNEL); > if (!kvm->debugfs_stat_data) > - return -ENOMEM; > + goto out_err; > > for (p = debugfs_entries; p->name; p++) { > stat_data = kzalloc(sizeof(*stat_data), GFP_KERNEL); > if (!stat_data) > - return -ENOMEM; > + goto out_err; > > stat_data->kvm = kvm; > stat_data->offset = p->offset; > @@ -599,9 +599,13 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, int fd) > kvm->debugfs_dentry, > stat_data, > stat_fops_per_vm[p->kind])) > - return -ENOMEM; > + goto out_err; > } > return 0; > + > +out_err: > + kvm_destroy_vm_debugfs(kvm); > + return -ENOMEM; > } > > static struct kvm *kvm_create_vm(unsigned long type) > Reviewed-by: Paolo Bonzini <pbonzini@redhat.com> -- 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/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c index c1dc45e..9293285 100644 --- a/virt/kvm/kvm_main.c +++ b/virt/kvm/kvm_main.c @@ -585,12 +585,12 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, int fd) sizeof(*kvm->debugfs_stat_data), GFP_KERNEL); if (!kvm->debugfs_stat_data) - return -ENOMEM; + goto out_err; for (p = debugfs_entries; p->name; p++) { stat_data = kzalloc(sizeof(*stat_data), GFP_KERNEL); if (!stat_data) - return -ENOMEM; + goto out_err; stat_data->kvm = kvm; stat_data->offset = p->offset; @@ -599,9 +599,13 @@ static int kvm_create_vm_debugfs(struct kvm *kvm, int fd) kvm->debugfs_dentry, stat_data, stat_fops_per_vm[p->kind])) - return -ENOMEM; + goto out_err; } return 0; + +out_err: + kvm_destroy_vm_debugfs(kvm); + return -ENOMEM; } static struct kvm *kvm_create_vm(unsigned long type)
Memory and debugfs entries are leaked on error. Fix it. Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com> --- virt/kvm/kvm_main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-)