From 30f0ea6cab956ed59ecc5de82459187763a2b868 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 13 Mar 2011 02:39:10 +0100 Subject: Apply post-1.18.3 fixes, bump version to 1.18.4 Signed-off-by: Denys Vlasenko --- modutils/modutils-24.c | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'modutils') diff --git a/modutils/modutils-24.c b/modutils/modutils-24.c index 2b34954c0..bd650cab5 100644 --- a/modutils/modutils-24.c +++ b/modutils/modutils-24.c @@ -2474,6 +2474,7 @@ new_process_module_arguments(struct obj_file *f, const char *options) n = 0; p = val; while (*p != 0) { + char sv_ch; char *endp; if (++n > max) @@ -2482,14 +2483,17 @@ new_process_module_arguments(struct obj_file *f, const char *options) switch (*pinfo) { case 's': len = strcspn(p, ","); + sv_ch = p[len]; p[len] = 0; obj_string_patch(f, sym->secidx, loc - contents, p); loc += tgt_sizeof_char_p; p += len; + *p = sv_ch; break; case 'c': len = strcspn(p, ","); + sv_ch = p[len]; p[len] = 0; if (len >= charssize) bb_error_msg_and_die("string too long for %s (max %ld)", param, @@ -2497,6 +2501,7 @@ new_process_module_arguments(struct obj_file *f, const char *options) strcpy((char *) loc, p); loc += charssize; p += len; + *p = sv_ch; break; case 'b': *loc++ = strtoul(p, &endp, 0); -- cgit v1.2.3-55-g6feb