linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] KVM: Add the check and free to avoid unknown errors.
@ 2020-02-14 21:02 Haiwei Li
  2020-02-17 17:15 ` Paolo Bonzini
  0 siblings, 1 reply; 4+ messages in thread
From: Haiwei Li @ 2020-02-14 21:02 UTC (permalink / raw)
  To: kvm, linux-kernel; +Cc: pbonzini

From: Haiwei Li <lihaiwei@tencent.com>

If 'kvm_create_vm_debugfs()' fails in 'kzalloc(sizeof(*stat_data), ...)',
'kvm_destroy_vm_debugfs()' will be called by the final fput(file) in
'kvm_dev_ioctl_create_vm()'.

Add the check and free to avoid unknown errors.

Signed-off-by: Haiwei Li <lihaiwei@tencent.com>
---
  virt/kvm/kvm_main.c | 5 ++++-
  1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
index 67ae2d5..18a32e1 100644
--- a/virt/kvm/kvm_main.c
+++ b/virt/kvm/kvm_main.c
@@ -617,8 +617,11 @@ static void kvm_destroy_vm_debugfs(struct kvm *kvm)
  	debugfs_remove_recursive(kvm->debugfs_dentry);

  	if (kvm->debugfs_stat_data) {
-		for (i = 0; i < kvm_debugfs_num_entries; i++)
+		for (i = 0; i < kvm_debugfs_num_entries; i++) {
+			if (!kvm->debugfs_stat_data[i])
+				break;
  			kfree(kvm->debugfs_stat_data[i]);
+		}
  		kfree(kvm->debugfs_stat_data);
  	}
  }
--
1.8.3.1

^ permalink raw reply related	[flat|nested] 4+ messages in thread
* Re: [PATCH] KVM: Add the check and free to avoid unknown errors.
@ 2020-02-15  2:00 linmiaohe
  2020-02-15  5:33 ` Haiwei Li
  0 siblings, 1 reply; 4+ messages in thread
From: linmiaohe @ 2020-02-15  2:00 UTC (permalink / raw)
  To: Haiwei Li; +Cc: pbonzini, kvm, linux-kernel

Hi:
Haiwei Li <lihaiwei.kernel@gmail.com> wrote:
> From: Haiwei Li <lihaiwei@tencent.com>
>
> If 'kvm_create_vm_debugfs()' fails in 'kzalloc(sizeof(*stat_data), ...)', 'kvm_destroy_vm_debugfs()' will be called by the final fput(file) in 'kvm_dev_ioctl_create_vm()'.
>
> Add the check and free to avoid unknown errors.

Add the check and free? According to the code,it seem what you mean is "add the check against free" ?
 
>
> Signed-off-by: Haiwei Li <lihaiwei@tencent.com>
>
>   	if (kvm->debugfs_stat_data) {
> -		for (i = 0; i < kvm_debugfs_num_entries; i++)
> +		for (i = 0; i < kvm_debugfs_num_entries; i++) {
> +			if (!kvm->debugfs_stat_data[i])
> +				break;
>   			kfree(kvm->debugfs_stat_data[i]);
> +		}
>   		kfree(kvm->debugfs_stat_data);
>   	}
>   }

If (!kvm->debugfs_stat_data[i]) is checked in kfree() internal. And break early seems have no different effect.
Could you please explain what unknown errors may occur? And how? Thanks.


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-02-17 17:15 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-02-14 21:02 [PATCH] KVM: Add the check and free to avoid unknown errors Haiwei Li
2020-02-17 17:15 ` Paolo Bonzini
2020-02-15  2:00 linmiaohe
2020-02-15  5:33 ` Haiwei Li

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).