summaryrefslogtreecommitdiff
path: root/apps/plugins
diff options
context:
space:
mode:
Diffstat (limited to 'apps/plugins')
-rwxr-xr-xapps/plugins/lib/overlay.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/apps/plugins/lib/overlay.c b/apps/plugins/lib/overlay.c
index 31c2b00..91f08e2 100755
--- a/apps/plugins/lib/overlay.c
+++ b/apps/plugins/lib/overlay.c
@@ -85,7 +85,6 @@ enum plugin_status run_overlay(struct plugin_api* rb, void* parameter,
rb->splash(2*HZ, true, "%s overlay doesn't fit into memory.", name);
return PLUGIN_ERROR;
}
- rb->memset(header.load_addr, 0, header.end_addr - header.load_addr);
fd = rb->open(filename, O_RDONLY);
if (fd < 0)
@@ -101,6 +100,10 @@ enum plugin_status run_overlay(struct plugin_api* rb, void* parameter,
rb->splash(2*HZ, true, "Reading %s overlay failed.", name);
return PLUGIN_ERROR;
}
+ /* Zero out bss area */
+ rb->memset(header.load_addr + readsize, 0,
+ header.end_addr - (header.load_addr + readsize));
+
return header.entry_point(rb, parameter);
}
#endif