diff options
author | Tim Moore <timoore@redhat.com> | 2008-10-02 10:31:49 +0200 |
---|---|---|
committer | Tim Moore <timoore@redhat.com> | 2008-10-02 12:13:39 +0200 |
commit | caf566cb319004a314b09ea6fd6781941db89f8e (patch) | |
tree | d59f1176575eda6bd723443f26c34bc733c1c046 | |
parent | dd4918442a55569175bda0575f746e84c99cee58 (diff) | |
download | systemtap-steved-caf566cb319004a314b09ea6fd6781941db89f8e.tar.gz systemtap-steved-caf566cb319004a314b09ea6fd6781941db89f8e.tar.xz systemtap-steved-caf566cb319004a314b09ea6fd6781941db89f8e.zip |
fix bugs in add_bad_addr_entry
-rw-r--r-- | runtime/ChangeLog | 5 | ||||
-rw-r--r-- | runtime/addr-map.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/runtime/ChangeLog b/runtime/ChangeLog index 677b32ee..e22bee26 100644 --- a/runtime/ChangeLog +++ b/runtime/ChangeLog @@ -1,3 +1,8 @@ +2008-10-02 Tim Moore <timoore@redhat.com> + + * addr-map.c (add_bad_addr_entry): Fix bugs in allocating a new + table and copying old entries into the new table. + 2008-09-30 Tim Moore <timoore@redhat.com> * addr-map.c (add_bad_addr_entry): Rewrite allocation of address diff --git a/runtime/addr-map.c b/runtime/addr-map.c index c215b744..706da454 100644 --- a/runtime/addr-map.c +++ b/runtime/addr-map.c @@ -139,8 +139,9 @@ add_bad_addr_entry(unsigned long min_addr, unsigned long max_addr, if (!new_map) return -ENOMEM; new_map->size = old_size + 1; - continue; } + else + break; } if (!blackmap) { @@ -170,7 +171,7 @@ add_bad_addr_entry(unsigned long min_addr, unsigned long max_addr, memcpy(&new_map->entries, old_map->entries, existing * sizeof(*new_entry)); if (old_map->size > existing) - memcpy(new_entry + 1, &old_map->entries[existing + 1], + memcpy(new_entry + 1, &old_map->entries[existing], (old_map->size - existing) * sizeof(*new_entry)); } blackmap = new_map; |