- rename libbb's password helpers as suggested in libbb.h my_getpwnam -> bb_xgetpwnam /* dies on error */ my_getgrnam -> bb_xgetgrnam /* dies on error */ my_getgrgid -> bb_getgrgid my_getpwuid -> bb_getpwuid my_getug -> bb_getug
This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)
No binary (build failed)
—
(log yok)
| @@ -331,8 +331,8 @@ void fileaction_dobackup(char *filename, int fileref) | |
| void fileaction_setowngrp(char *filename, int fileref) | |
| { | |
| int uid, gid; | |
| - | uid = my_getpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); |
| - | gid = my_getgrnam(rpm_getstring(RPMTAG_FILEGROUPNAME, fileref)); |
| + | uid = bb_xgetpwnam(rpm_getstring(RPMTAG_FILEUSERNAME, fileref)); |
| + | gid = bb_xgetgrnam(rpm_getstring(RPMTAG_FILEGROUPNAME, fileref)); |
| chown (filename, uid, gid); | |
| } | |
| @@ -234,9 +234,9 @@ static inline int writeTarHeader(struct TarBallInfo *tbInfo, | |
| TAR_MAGIC_LEN + TAR_VERSION_LEN); | |
| /* Enter the user and group names (default to root if it fails) */ | |
| - | if (my_getpwuid(header.uname, statbuf->st_uid, sizeof(header.uname)) == NULL) |
| + | if (bb_getpwuid(header.uname, statbuf->st_uid, sizeof(header.uname)) == NULL) |
| strcpy(header.uname, "root"); | |
| - | if (my_getgrgid(header.gname, statbuf->st_gid, sizeof(header.gname)) == NULL) |
| + | if (bb_getgrgid(header.gname, statbuf->st_gid, sizeof(header.gname)) == NULL) |
| strcpy(header.gname, "root"); | |
| if (tbInfo->hlInfo) { | |
| @@ -58,7 +58,7 @@ int chgrp_main(int argc, char **argv) | |
| argv += optind; | |
| /* Find the selected group */ | |
| - | gid = get_ug_id(*argv, my_getgrnam); |
| + | gid = get_ug_id(*argv, bb_xgetgrnam); |
| ++argv; | |
| /* Ok, ready to do the deed now */ | |
| @@ -77,11 +77,11 @@ int chown_main(int argc, char **argv) | |
| gid = -1; | |
| if (groupName) { | |
| *groupName++ = '\0'; | |
| - | gid = get_ug_id(groupName, my_getgrnam); |
| + | gid = get_ug_id(groupName, bb_xgetgrnam); |
| } | |
| /* Now check for the username */ | |
| - | uid = get_ug_id(*argv, my_getpwnam); |
| + | uid = get_ug_id(*argv, bb_xgetpwnam); |
| ++argv; | |
| @@ -80,8 +80,8 @@ extern int id_main(int argc, char **argv) | |
| if(argv[optind]) { | |
| p=getpwnam(argv[optind]); | |
| - | /* my_getpwnam is needed because it exits on failure */ |
| - | uid = my_getpwnam(argv[optind]); |
| + | /* bb_xgetpwnam is needed because it exits on failure */ |
| + | uid = bb_xgetpwnam(argv[optind]); |
| gid = p->pw_gid; | |
| /* in this case PRINT_REAL is the same */ | |
| } | |
| @@ -89,8 +89,8 @@ extern int id_main(int argc, char **argv) | |
| if(flags & (JUST_GROUP | JUST_USER)) { | |
| /* JUST_GROUP and JUST_USER are mutually exclusive */ | |
| if(flags & NAME_NOT_NUMBER) { | |
| - | /* my_getpwuid and my_getgrgid exit on failure so puts cannot segfault */ |
| - | puts((flags & JUST_USER) ? my_getpwuid(NULL, uid, -1 ) : my_getgrgid(NULL, gid, -1 )); |
| + | /* bb_getpwuid and bb_getgrgid exit on failure so puts cannot segfault */ |
| + | puts((flags & JUST_USER) ? bb_getpwuid(NULL, uid, -1 ) : bb_getgrgid(NULL, gid, -1 )); |
| } else { | |
| bb_printf("%u\n",(flags & JUST_USER) ? uid : gid); | |
| } | |
| @@ -99,11 +99,11 @@ extern int id_main(int argc, char **argv) | |
| } | |
| /* Print full info like GNU id */ | |
| - | /* my_getpwuid doesn't exit on failure here */ |
| - | status=printf_full(uid, my_getpwuid(NULL, uid, 0), 'u'); |
| + | /* bb_getpwuid doesn't exit on failure here */ |
| + | status=printf_full(uid, bb_getpwuid(NULL, uid, 0), 'u'); |
| putchar(' '); | |
| - | /* my_getgrgid doesn't exit on failure here */ |
| - | status|=printf_full(gid, my_getgrgid(NULL, gid, 0), 'g'); |
| + | /* bb_getgrgid doesn't exit on failure here */ |
| + | status|=printf_full(gid, bb_getgrgid(NULL, gid, 0), 'g'); |
| #ifdef CONFIG_SELINUX | |
| if ( is_selinux_enabled() ) { | |
| @@ -73,8 +73,8 @@ extern int install_main(int argc, char **argv) | |
| copy_flags |= FILEUTILS_PRESERVE_STATUS; | |
| } | |
| bb_parse_mode(mode_str, &mode); | |
| - | gid = get_ug_id(gid_str, my_getgrnam); |
| - | uid = get_ug_id(uid_str, my_getpwnam); |
| + | gid = get_ug_id(gid_str, bb_xgetgrnam); |
| + | uid = get_ug_id(uid_str, bb_xgetpwnam); |
| umask(0); | |
| /* Create directories | |
| @@ -692,9 +692,9 @@ static int list_single(struct dnode *dn) | |
| break; | |
| case LIST_ID_NAME: | |
| #ifdef CONFIG_FEATURE_LS_USERNAME | |
| - | my_getpwuid(scratch, dn->dstat.st_uid, sizeof(scratch)); |
| + | bb_getpwuid(scratch, dn->dstat.st_uid, sizeof(scratch)); |
| printf("%-8.8s ", scratch); | |
| - | my_getgrgid(scratch, dn->dstat.st_gid, sizeof(scratch)); |
| + | bb_getgrgid(scratch, dn->dstat.st_gid, sizeof(scratch)); |
| printf("%-8.8s", scratch); | |
| column += 17; | |
| break; | |
| @@ -32,7 +32,7 @@ extern int whoami_main(int argc, char **argv) | |
| if (argc > 1) | |
| bb_show_usage(); | |
| - | puts(my_getpwuid(NULL, geteuid(), -1)); |
| + | puts(bb_getpwuid(NULL, geteuid(), -1)); |
| /* exits on error */ | |
| bb_fflush_stdout_and_exit(EXIT_SUCCESS); | |
| } | |
| @@ -265,7 +265,7 @@ start_stop_daemon_main(int argc, char **argv) | |
| argv += optind; | |
| if (userspec && sscanf(userspec, "%d", &user_id) != 1) | |
| - | user_id = my_getpwnam(userspec); |
| + | user_id = bb_xgetpwnam(userspec); |
| if (opt & SSD_CTX_STOP) { | |
| do_stop(); | |
| @@ -221,16 +221,14 @@ extern unsigned long bb_xparse_number(const char *numstr, | |
| const struct suffix_mult *suffixes); | |
| - | //#warning change names? |
| - | |
| /* These parse entries in /etc/passwd and /etc/group. This is desirable | |
| * for BusyBox since we want to avoid using the glibc NSS stuff, which | |
| - | * increases target size and is often not needed embedded systems. */ |
| - | extern long my_getpwnam(const char *name); |
| - | extern long my_getgrnam(const char *name); |
| - | extern char * my_getug(char *buffer, char *idname, long id, int bufsize, char prefix); |
| - | extern char * my_getpwuid(char *name, long uid, int bufsize); |
| - | extern char * my_getgrgid(char *group, long gid, int bufsize); |
| + | * increases target size and is often not needed on embedded systems. */ |
| + | extern long bb_xgetpwnam(const char *name); |
| + | extern long bb_xgetgrnam(const char *name); |
| + | extern char * bb_getug(char *buffer, char *idname, long id, int bufsize, char prefix); |
| + | extern char * bb_getpwuid(char *name, long uid, int bufsize); |
| + | extern char * bb_getgrgid(char *group, long gid, int bufsize); |
| extern char *bb_askpass(int timeout, const char * prompt); | |
| extern int device_open(const char *device, int mode); | |
| @@ -471,7 +469,7 @@ extern void print_login_prompt(void); | |
| extern void vfork_daemon_rexec(int nochdir, int noclose, | |
| int argc, char **argv, char *foreground_opt); | |
| extern int get_terminal_width_height(int fd, int *width, int *height); | |
| - | extern unsigned long get_ug_id(const char *s, long (*my_getxxnam)(const char *)); |
| + | extern unsigned long get_ug_id(const char *s, long (*__bb_getxxnam)(const char *)); |
| #define HASH_SHA1 1 | |
| #define HASH_MD5 2 | |
| @@ -28,13 +28,12 @@ LIBBB_SRC:= \ | |
| correct_password.c create_icmp_socket.c create_icmp6_socket.c \ | |
| device_open.c dump.c error_msg.c error_msg_and_die.c find_mount_point.c \ | |
| find_pid_by_name.c find_root_device.c fgets_str.c full_read.c \ | |
| - | full_write.c get_last_path_component.c get_line_from_file.c get_ug_id.c \ |
| + | full_write.c get_last_path_component.c get_line_from_file.c \ |
| hash_fd.c herror_msg.c herror_msg_and_die.c \ | |
| human_readable.c inet_common.c inode_hash.c interface.c isdirectory.c \ | |
| kernel_version.c last_char_is.c llist_add_to.c login.c loop.c \ | |
| make_directory.c mode_string.c mtab.c mtab_file.c \ | |
| - | my_getgrgid.c my_getgrnam.c my_getpwnam.c my_getug.c\ |
| - | my_getpwuid.c obscure.c parse_mode.c parse_number.c perror_msg.c \ |
| + | obscure.c parse_mode.c parse_number.c perror_msg.c \ |
| perror_msg_and_die.c print_file.c get_console.c \ | |
| process_escape_sequence.c procps.c pwd2spwd.c pw_encrypt.c qmodule.c \ | |
| read_package_field.c recursive_action.c remove_file.c \ | |
| @@ -75,18 +74,22 @@ LIBBB_MOBJ3:=xgetularg_bnd_sfx.o xgetlarg_bnd_sfx.o getlarg10_sfx.o \ | |
| LIBBB_MSRC4:=$(srcdir)/safe_strtol.c | |
| LIBBB_MOBJ4:=safe_strtoi.o safe_strtod.o safe_strtol.o safe_strtoul.o | |
| + | LIBBB_MSRC5:=$(srcdir)/bb_pwd.c |
| + | LIBBB_MOBJ5:=bb_xgetpwnam.o bb_xgetgrnam.o bb_getgrgid.o bb_getpwuid.o \ |
| + | bb_getug.o get_ug_id.o |
| + | |
| LIBBB_MOBJS0=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ0)) | |
| LIBBB_MOBJS1=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ1)) | |
| LIBBB_MOBJS2=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ2)) | |
| LIBBB_MOBJS3=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ3)) | |
| LIBBB_MOBJS4=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ4)) | |
| + | LIBBB_MOBJS5=$(patsubst %,$(LIBBB_DIR)%, $(LIBBB_MOBJ5)) |
| libraries-y+=$(LIBBB_DIR)$(LIBBB_AR) | |
| $(LIBBB_DIR)$(LIBBB_AR): $(LIBBB_OBJS) $(LIBBB_MOBJS0) $(LIBBB_MOBJS1) \ | |
| - | $(LIBBB_MOBJS2) $(LIBBB_MOBJS3) $(LIBBB_MOBJS4) |
| - | $(AR) $(ARFLAGS) $@ $(LIBBB_OBJS) $(LIBBB_MOBJS0) $(LIBBB_MOBJS1) \ |
| - | $(LIBBB_MOBJS2) $(LIBBB_MOBJS3) $(LIBBB_MOBJS4) |
| + | $(LIBBB_MOBJS2) $(LIBBB_MOBJS3) $(LIBBB_MOBJS4) $(LIBBB_MOBJS5) |
| + | $(AR) $(ARFLAGS) $(@) $(LIBBB_OBJS) $(^) |
| $(LIBBB_DIR)%.o: $(srcdir)/%.c | |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $< | |
| @@ -106,3 +109,6 @@ $(LIBBB_MOBJS3): $(LIBBB_MSRC3) | |
| $(LIBBB_MOBJS4): $(LIBBB_MSRC4) | |
| $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ | |
| + | $(LIBBB_MOBJS5): $(LIBBB_MSRC5) |
| + | $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -DL_$(notdir $*) -c $< -o $@ |
| + | |
| @@ -53,7 +53,7 @@ extern procps_status_t * procps_scan(int save_user_arg0) | |
| sprintf(status, "/proc/%d", pid); | |
| if(stat(status, &sb)) | |
| continue; | |
| - | my_getpwuid(curstatus.user, sb.st_uid, sizeof(curstatus.user)); |
| + | bb_getpwuid(curstatus.user, sb.st_uid, sizeof(curstatus.user)); |
| sprintf(status, "/proc/%d/stat", pid); | |
| @@ -305,7 +305,7 @@ int adduser_main(int argc, char **argv) | |
| if (usegroup) { | |
| /* Add user to a group that already exists */ | |
| - | pw.pw_gid = my_getgrnam(usegroup); |
| + | pw.pw_gid = bb_xgetgrnam(usegroup); |
| /* exits on error */ | |
| } | |
| @@ -168,7 +168,7 @@ extern int passwd_main(int argc, char **argv) | |
| bb_show_usage(); | |
| } | |
| } | |
| - | myname = (char *) bb_xstrdup(my_getpwuid(NULL, getuid(), -1)); |
| + | myname = (char *) bb_xstrdup(bb_getpwuid(NULL, getuid(), -1)); |
| /* exits on error */ | |
| if (optind < argc) { | |
| name = argv[optind]; | |
| @@ -160,12 +160,12 @@ extern int makedevs_main(int argc, char **argv) | |
| continue; | |
| } | |
| if (group) { | |
| - | gid = get_ug_id(group, my_getgrnam); |
| + | gid = get_ug_id(group, bb_xgetgrnam); |
| } else { | |
| gid = getgid(); | |
| } | |
| if (user) { | |
| - | uid = get_ug_id(user, my_getpwnam); |
| + | uid = get_ug_id(user, bb_xgetpwnam); |
| } else { | |
| uid = getuid(); | |
| } | |
| @@ -2050,7 +2050,7 @@ int httpd_main(int argc, char *argv[]) | |
| uid = strtol(s_uid, &e, 0); | |
| if(*e != '\0') { | |
| /* not integer */ | |
| - | uid = my_getpwnam(s_uid); |
| + | uid = bb_xgetpwnam(s_uid); |
| } | |
| } | |
| #endif | |
| @@ -108,7 +108,7 @@ extern int logger_main(int argc, char **argv) | |
| char buf[1024], name[128]; | |
| /* Fill out the name string early (may be overwritten later) */ | |
| - | my_getpwuid(name, geteuid(), sizeof(name)); |
| + | bb_getpwuid(name, geteuid(), sizeof(name)); |
| /* Parse any options */ | |
| while ((opt = getopt(argc, argv, "p:st:")) > 0) { | |