diff options
Diffstat (limited to 'tools/perf/builtin-kvm.c')
| -rw-r--r-- | tools/perf/builtin-kvm.c | 3 | 
1 files changed, 3 insertions, 0 deletions
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index 533501e2b07c..24b78aecc928 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c @@ -328,6 +328,7 @@ static int kvm_events_hash_fn(u64 key)  static bool kvm_event_expand(struct kvm_event *event, int vcpu_id)  {  	int old_max_vcpu = event->max_vcpu; +	void *prev;  	if (vcpu_id < event->max_vcpu)  		return true; @@ -335,9 +336,11 @@ static bool kvm_event_expand(struct kvm_event *event, int vcpu_id)  	while (event->max_vcpu <= vcpu_id)  		event->max_vcpu += DEFAULT_VCPU_NUM; +	prev = event->vcpu;  	event->vcpu = realloc(event->vcpu,  			      event->max_vcpu * sizeof(*event->vcpu));  	if (!event->vcpu) { +		free(prev);  		pr_err("Not enough memory\n");  		return false;  	}  | 
