diff options
| author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-06-02 13:34:36 +0000 |
|---|---|---|
| committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-06-02 13:34:36 +0000 |
| commit | d42816763f2414117d01a950c0dc2ed4dd3146eb (patch) | |
| tree | e4b86f265396a39923f359a57cdbc7d79af2a10a /modutils | |
| parent | beac1bd58e231f8b1664c767dc128a1d86b27fff (diff) | |
| download | busybox-w32-d42816763f2414117d01a950c0dc2ed4dd3146eb.tar.gz busybox-w32-d42816763f2414117d01a950c0dc2ed4dd3146eb.tar.bz2 busybox-w32-d42816763f2414117d01a950c0dc2ed4dd3146eb.zip | |
- just chdir to the basedir (-30b).
Diffstat (limited to 'modutils')
| -rw-r--r-- | modutils/depmod.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/modutils/depmod.c b/modutils/depmod.c index b0b09c235..b2bbc7940 100644 --- a/modutils/depmod.c +++ b/modutils/depmod.c | |||
| @@ -31,7 +31,6 @@ typedef struct dep_lst_t { | |||
| 31 | 31 | ||
| 32 | struct globals { | 32 | struct globals { |
| 33 | dep_lst_t *lst; /* modules without their corresponding extension */ | 33 | dep_lst_t *lst; /* modules without their corresponding extension */ |
| 34 | size_t moddir_base_len; /* length of the "-b basedir" */ | ||
| 35 | }; | 34 | }; |
| 36 | #define G (*(struct globals*)&bb_common_bufsiz1) | 35 | #define G (*(struct globals*)&bb_common_bufsiz1) |
| 37 | /* We have to zero it out because of NOEXEC */ | 36 | /* We have to zero it out because of NOEXEC */ |
| @@ -46,7 +45,7 @@ static int fill_lst(const char *modulename, struct stat ATTRIBUTE_UNUSED *sb, | |||
| 46 | */ | 45 | */ |
| 47 | if (strrstr(modulename, ".ko") != NULL) { | 46 | if (strrstr(modulename, ".ko") != NULL) { |
| 48 | dep_lst_t *new = xzalloc(sizeof(dep_lst_t)); | 47 | dep_lst_t *new = xzalloc(sizeof(dep_lst_t)); |
| 49 | new->name = xstrdup(modulename + G.moddir_base_len); | 48 | new->name = xstrdup(modulename); |
| 50 | new->next = G.lst; | 49 | new->next = G.lst; |
| 51 | G.lst = new; | 50 | G.lst = new; |
| 52 | } | 51 | } |
| @@ -82,12 +81,12 @@ static int fileAction(const char *fname, struct stat *sb, | |||
| 82 | ptr = the_module; | 81 | ptr = the_module; |
| 83 | this = G.lst; | 82 | this = G.lst; |
| 84 | do { | 83 | do { |
| 85 | if (!strcmp(fname + G.moddir_base_len, this->name)) | 84 | if (!strcmp(fname, this->name)) |
| 86 | break; | 85 | break; |
| 87 | this = this->next; | 86 | this = this->next; |
| 88 | } while (this); | 87 | } while (this); |
| 89 | dbg_assert (this); | 88 | dbg_assert (this); |
| 90 | //bb_info_msg("fname='%s'", fname + G.moddir_base_len); | 89 | //bb_info_msg("fname='%s'", fname); |
| 91 | do { | 90 | do { |
| 92 | /* search for a 'd' */ | 91 | /* search for a 'd' */ |
| 93 | ptr = memchr(ptr, 'd', len - (ptr - (char*)the_module)); | 92 | ptr = memchr(ptr, 'd', len - (ptr - (char*)the_module)); |
| @@ -157,13 +156,7 @@ int depmod_main(int ATTRIBUTE_UNUSED argc, char **argv) | |||
| 157 | option_mask32 |= *argv == NULL; | 156 | option_mask32 |= *argv == NULL; |
| 158 | 157 | ||
| 159 | if (option_mask32 & ARG_b) { | 158 | if (option_mask32 & ARG_b) { |
| 160 | G.moddir_base_len = strlen(moddir_base); | 159 | xchdir(moddir_base); |
| 161 | if (ENABLE_FEATURE_CLEAN_UP) { | ||
| 162 | chp = moddir; | ||
| 163 | moddir = concat_path_file(moddir_base, moddir); | ||
| 164 | free (chp); | ||
| 165 | } else | ||
| 166 | moddir = concat_path_file(moddir_base, moddir); | ||
| 167 | } | 160 | } |
| 168 | 161 | ||
| 169 | if (!(option_mask32 & ARG_n)) { /* --dry-run */ | 162 | if (!(option_mask32 & ARG_n)) { /* --dry-run */ |
