diff options
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/buflib.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/firmware/buflib.c b/firmware/buflib.c index 2ce9cc344c..d9f82f8854 100644 --- a/firmware/buflib.c +++ b/firmware/buflib.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #include "panic.h" | 35 | #include "panic.h" |
36 | #include "crc32.h" | 36 | #include "crc32.h" |
37 | #include "system.h" /* for ALIGN_*() */ | 37 | #include "system.h" /* for ALIGN_*() */ |
38 | #include "pathfuncs.h" /* path_basename() */ | ||
38 | 39 | ||
39 | /* The main goal of this design is fast fetching of the pointer for a handle. | 40 | /* The main goal of this design is fast fetching of the pointer for a handle. |
40 | * For that reason, the handles are stored in a table at the end of the buffer | 41 | * For that reason, the handles are stored in a table at the end of the buffer |
@@ -658,6 +659,9 @@ int | |||
658 | buflib_alloc_ex(struct buflib_context *ctx, size_t size, const char *name, | 659 | buflib_alloc_ex(struct buflib_context *ctx, size_t size, const char *name, |
659 | struct buflib_callbacks *ops) | 660 | struct buflib_callbacks *ops) |
660 | { | 661 | { |
662 | if (name) /* if name is a path strip everything but the filename */ | ||
663 | path_basename(name, &name); | ||
664 | |||
661 | union buflib_data *handle, *block; | 665 | union buflib_data *handle, *block; |
662 | size_t name_len = name ? B_ALIGN_UP(strlen(name)+1) : 0; | 666 | size_t name_len = name ? B_ALIGN_UP(strlen(name)+1) : 0; |
663 | bool last; | 667 | bool last; |