Skip to contentSkip to conversation

libkvm: null pointer dereference in kvm_destroy_phys_mem

PATCH Superseded Carlo Marcelo Arenas Belon 2 participants 5 messages Dec 14, 2007 – Dec 19, 2007 1 message not in the archive KVM

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 libkvm: null pointer dereference in kvm_destroy_phys_mem

The following patch eliminates the uninitialized mem pointer in kvm_destroy_phys_mem and uses instead the corresponding entry from the slots array in the conditional to fix :

libkvm.c:580: warning: 'mem' is used uninitialized in this function

---
 libkvm/libkvm.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)
libkvm/libkvm.c +2 -3
index 93d7b6b..8f7a34f 100644
@@ -567,7 +567,6 @@ void kvm_destroy_phys_mem(kvm_context_t kvm, unsigned long phys_start,
 			  unsigned long len)
 {
 	int slot;
-	struct kvm_memory_region *mem;
 
 	slot = get_slot(phys_start);
 
@@ -579,8 +578,8 @@ void kvm_destroy_phys_mem(kvm_context_t kvm, unsigned long phys_start,
 	if (phys_start != slots[slot].phys_addr) {
 		fprintf(stderr,
 			"WARNING: %s: phys_start is 0x%lx expecting 0x%llx\n",
-			__FUNCTION__, phys_start, mem->guest_phys_addr);
-		phys_start = mem->guest_phys_addr;
+			__FUNCTION__, phys_start, slots[slot].phys_addr);
+		phys_start = slots[slot].phys_addr;
 	}
 	kvm_create_phys_mem(kvm, phys_start, 0, 0, 0);
 }
Signature · 9 lines
1.5.2.5


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
#1 lore raw

PATCH RESEND 1/1 libkvm: NULL pointer dereference in kvm_destroy_phys_mem as used in kvm-56

The following patch eliminates the uninitialized mem pointer, using instead the corresponding entry from the slots array to fix :

libkvm.c:580: warning: 'mem' is used uninitialized in this function

Also changes the formatting type for phys_addr to long to prevent :

libkvm.c:581: warning: format '%llx' expects type 'long long unsigned int'
, but argument 5 has type 'long unsigned int'

---
 libkvm/libkvm.c |    7 +++----
 1 files changed, 3 insertions(+), 4 deletions(-)
libkvm/libkvm.c +3 -4
index 93d7b6b..fc2e265 100644
@@ -567,7 +567,6 @@ void kvm_destroy_phys_mem(kvm_context_t kvm, unsigned long phys_start,
 			  unsigned long len)
 {
 	int slot;
-	struct kvm_memory_region *mem;
 
 	slot = get_slot(phys_start);
 
@@ -578,9 +577,9 @@ void kvm_destroy_phys_mem(kvm_context_t kvm, unsigned long phys_start,
 	}
 	if (phys_start != slots[slot].phys_addr) {
 		fprintf(stderr,
-			"WARNING: %s: phys_start is 0x%lx expecting 0x%llx\n",
-			__FUNCTION__, phys_start, mem->guest_phys_addr);
-		phys_start = mem->guest_phys_addr;
+			"WARNING: %s: phys_start is 0x%lx expecting 0x%lx\n",
+			__FUNCTION__, phys_start, slots[slot].phys_addr);
+		phys_start = slots[slot].phys_addr;
 	}
 	kvm_create_phys_mem(kvm, phys_start, 0, 0, 0);
 }
Signature · 9 lines
1.5.2.5


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
Applied
#2 lore raw

Re: [PATCH] [RESEND] libkvm: NULL pointer dereference in kvm_destroy_phys_mem as used in kvm-56

Quoted 11 lines · Carlo Marcelo Arenas Belon

The following patch eliminates the uninitialized mem pointer, using instead the corresponding entry from the slots array to fix :

libkvm.c:580: warning: 'mem' is used uninitialized in this function

Also changes the formatting type for phys_addr to long to prevent :

libkvm.c:581: warning: format '%llx' expects type 'long long unsigned int'
, but argument 5 has type 'long unsigned int'

Applied, thanks. But please avoid unrelated changes in the same patch in the future.

Signature · 9 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

A message that is not in the archive (sent off-list or not yet received): 4767F333.5010907-atKUWr5tajBWk0Htik3J/[email protected]

#4 lore raw

Re: [PATCH] [RESEND] libkvm: NULL pointer dereference in kvm_destroy_phys_mem as used in kvm-56

Quoted 5 lines · Avi Kivity
Quoted 4 lines · Carlo Marcelo Arenas Belon

The following patch eliminates the uninitialized mem pointer, using instead the corresponding entry from the slots array to fix :

libkvm.c:580: warning: 'mem' is used uninitialized in this function

if this part of the patch is applied..

Quoted 4 lines
Quoted 4 lines

Also changes the formatting type for phys_addr to long to prevent :

libkvm.c:581: warning: format '%llx' expects type 'long long unsigned int'
, but argument 5 has type 'long unsigned int'

this warning will be triggered in the next compile.

Quoted 2 lines

Applied, thanks. But please avoid unrelated changes in the same patch in the future.

sorry about that, will do, even if I disagree there were unrelated as explained above.

so just to be clear on this?, would you rather have these changes in a patch series, or as unrelated patches with the second one fixing a formatting issue that the first one triggered?

if the later, how to handle in that case the dependency so that they don't get applied in incorrect order triggering conflicts?

I understand that the first part of it has higher importance than the second one, but I would rather have them applied together as they make IMHO more sense as an atomic change.

Carlo

-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace

#5 lore raw

Re: [PATCH] [RESEND] libkvm: NULL pointer dereference in kvm_destroy_phys_mem as used in kvm-56

Quoted 4 lines · Carlo Marcelo Arenas Belon

so just to be clear on this?, would you rather have these changes in a patch series, or as unrelated patches with the second one fixing a formatting issue that the first one triggered?

Oh, I misunderstood. The changes are related and should be in one patch. Sorry about the confusion.

Signature · 9 lines
error compiling committee.c: too many arguments to function


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services
for just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace