summaryrefslogtreecommitdiff
path: root/com32/lib/sys/module/common.c
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-12-07 11:33:45 +0000
committerMatt Fleming <matt.fleming@intel.com>2012-12-07 11:33:45 +0000
commit10f6cf6eef0a7da7dad1933efdbfb101155792d0 (patch)
treed8ee3bfc6e55e739e0f135cd6d945955c670dd46 /com32/lib/sys/module/common.c
parent35928ee37da523e5f992cc462a4a4193d0bfaa4c (diff)
parentddb10ce99c327888ade4d2ba3e4c50ad12aaa059 (diff)
downloadsyslinux-6.00-pre3.tar.gz
Merge tag 'syslinux-5.00' into firmwaresyslinux-6.00-pre3
Conflicts: Makefile com32/elflink/ldlinux/Makefile com32/lib/sys/module/elf_module.c core/cleanup.c core/comboot.inc core/conio.c core/fs/fs.c core/init.c core/mem/free.c core/mem/malloc.c core/timer.inc diag/geodsp/Makefile extlinux/main.c mk/embedded.mk modules/Makefile Signed-off-by: Matt Fleming <matt.fleming@intel.com>
Diffstat (limited to 'com32/lib/sys/module/common.c')
-rw-r--r--com32/lib/sys/module/common.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/com32/lib/sys/module/common.c b/com32/lib/sys/module/common.c
index 50b8a9f6..5b0d9ee8 100644
--- a/com32/lib/sys/module/common.c
+++ b/com32/lib/sys/module/common.c
@@ -71,15 +71,19 @@ FILE *findpath(char *name)
p = PATH;
again:
i = 0;
- while (*p && *p != ':' && i < FILENAME_MAX) {
+ while (*p && *p != ':' && i < FILENAME_MAX - 1) {
path[i++] = *p++;
}
if (*p == ':')
p++;
+ /* Ensure we have a '/' separator */
+ if (path[i] != '/' && i < FILENAME_MAX - 1)
+ path[i++] = '/';
+
n = name;
- while (*n && i < FILENAME_MAX)
+ while (*n && i < FILENAME_MAX - 1)
path[i++] = *n++;
path[i] = '\0';