aboutsummaryrefslogtreecommitdiff
path: root/coreutils/id.c
AgeCommit message (Collapse)Author
2005-10-11- use complementally '!' to '?' - 'ask' is best 'free' char for this."Vladimir N. Oleynik"
- more long opt compatibility, can set flag for long opt struct now - more logic: check opt-depend requires and global requires, special for 'id' and 'start-stop-daemon' applets.
2005-09-20- rename libbb's password helpers as suggested in libbb.hBernhard Reutner-Fischer
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
2005-09-051) bb_opt_complementaly -> bb_opt_complementally"Vladimir N. Oleynik"
2) better support long options 3) new flag '!' for bb_opt_complementally: produce bb_show_usage() if BB_GETOPT_ERROR internally
2005-05-11change the hardcoded error constant (0x80000000UL) to a nice flexible define ↵Mike Frysinger
(BB_GETOPT_ERROR)
2005-05-03A patch from Takeharu KATO to update/fix SE-Linux support.Rob Landley
2004-09-15Tito writes,Glenn L McGrath
"This patch fixes all the bugs in id previously spotted by vodz and me. The binary size increased a bit, but now it should work as expected."
2004-09-02Tito writes:Eric Andersen
Hi Erik, Hi to all, This is part five of the my_get*id story. I've tweaked a bit this two functions to make them more flexible, but this changes will not affect existing code. Now they work so: 1) my_getpwuid( char *user, uid_t uid, int bufsize) if bufsize is > 0 char *user cannot be set to NULL on success username is written on static allocated buffer on failure uid as string is written to buffer and NULL is returned if bufsize is = 0 char *user can be set to NULL on success username is returned on failure NULL is returned if bufsize is < 0 char *user can be set to NULL on success username is returned on failure an error message is printed and the program exits 2) 1) my_getgrgid( char *group, uid_t uid, int bufsize) if bufsize is > 0 char *group cannot be set to NULL on success groupname is written on static allocated buffer on failure gid as string is written to buffer and NULL is returned if bufsize is = 0 char *group can be set to NULL on success groupname is returned on failure NULL is returned if bufsize is < 0 char *group can be set to nULL on success groupname is returned on failure an error message is printed and the program exits This changes were needed mainly for my new id applet. It is somewhat bigger then the previous but matches the behaviour of GNU id and is capable to handle usernames of whatever length. BTW: at a first look it seems to me that it will integrate well (with just a few changes) with the pending patch in patches/id_groups_alias.patch. The increase in size is balanced by the removal of my_getpwnamegid.c from libbb as this was used only in previous id applet and by size optimizations made possible in whoami.c and in passwd.c. I know that we are in feature freeze but I think that i've tested it enough (at least I hope so.......).
2004-08-26Tito writes:Eric Andersen
Hi, I've spent the half night staring at the devilish my_getpwuid and my_getgrgid functions trying to find out a way to avoid actual and future potential buffer overflow problems without breaking existing code. Finally I've found a not intrusive way to do this that surely doesn't break existing code and fixes a couple of problems too. The attached patch: 1) changes the behaviour of my_getpwuid and my_getgrgid to avoid potetntial buffer overflows 2) fixes all occurences of this function calls in tar.c , id.c , ls.c, whoami.c, logger.c, libbb.h. 3) The behaviour of tar, ls and logger is unchanged. 4) The behavior of ps with somewhat longer usernames messing up output is fixed. 5) The only bigger change was the increasing of size of the buffers in id.c to avoid false negatives (unknown user: xxxxxx) with usernames longer than 8 chars. The value i used ( 32 chars ) was taken from the tar header ( see gname and uname). Maybe this buffers can be reduced a bit ( to 16 or whatever ), this is up to you. 6) The increase of size of the binary is not so dramatic: size busybox text data bss dec hex filename 239568 2300 36816 278684 4409c busybox size busybox_fixed text data bss dec hex filename 239616 2300 36816 278732 440cc busybox 7) The behaviour of whoami changed: actually it prints out an username cut down to the size of the buffer. This could be fixed by increasing the size of the buffer as in id.c or avoid the use of my_getpwuid and use getpwuid directly instead. Maybe this colud be also remain unchanged...... Please apply if you think it is ok to do so. The diff applies on today's cvs tarball (2004-08-25). Thanks in advance, Ciao, Tito
2004-03-15Remove trailing whitespace. Update copyright to include 2004.Eric Andersen
2003-07-03Patch from Russell Coker:Eric Andersen
I've attached my latest SE Linux patch for busybox against the latest CVS version of busybox.
2003-03-19Major coreutils update.Manuel Novoa III
2002-09-30Vodz' last_patch57:Eric Andersen
Hi, Erik. my_getpw(uid/gid) and applets used it have problem: if username for uid not found, applets can`t detect it (but code pessent). Also "%8ld " format is bad: spaces not required (applets have self format or spec format (tar applet) and overflow for "id" applet...) This problem also pressent in stable version. Patch for unstable in attach. --w vodz
2001-05-16Change 'printf("%s\n", ...)' into 'puts(...)'. Noted and patched in hostname.cMatt Kraai
by Larry Doolittle.
2001-02-27Patch from Vladimir N. Oleynik to save 128 bytes by moving errorEric Andersen
checking for some my_* functions to utility.c
2001-02-14This patch, put together by Manuel Novoa III, is a merge of workEric Andersen
done by Evin Robertson (bug#1105) and work from Manuel to make usage messages occupy less space and simplify how usage messages are displayed.
2001-01-31Removed trailing \n from error_msg{,_and_die} messages.Matt Kraai
2001-01-27Fix header file usage -- there were many unnecessary header files included inEric Andersen
busybox.h which slowed compiles. I left only what was needed and then fixed up all the apps to include their own header files. I also fixed naming for pwd.h and grp.h functions. Tested to compile and run with libc5, glibc, and uClibc. -Erik
2001-01-27Add in a patch to make busybox use the normal pwd.h and grp.hEric Andersen
functions. Add in simple implementations of these functions, which can, optionally, be used instead of the system versions. -Erik
2001-01-25Apply a patch from Brent Priddy <brent.priddy@adtran.com> to addEric Andersen
'id -n' support. -Erik
2000-12-13Fix from Matt Kraai -- a better way to NULL terminate strings for theEric Andersen
my_* passwd and group routines. I should have thought of doing it this way...
2000-12-07Changed names of functions in utility.c and all affected files, to makeMark Whitley
compliant with the style guide. Everybody rebuild your tags file!
2000-09-25Renamed "internal.h" to the more sensible "busybox.h".Eric Andersen
-Erik
2000-07-28Fix for a potential uninitialized variable, thx toEric Andersen
Ken Chalmers <chalmers@norscan.com> -Erik
2000-07-28Some cleanups, based on a patch from Ken ChalmersEric Andersen
-Erik
2000-07-20Whoops. Forgot to #include <getopt.h>.Mark Whitley
2000-07-19Converted option parsing to getopt() and made some minor formatting changes.Mark Whitley
2000-07-16Extract usage information into a separate file.Matt Kraai
2000-06-19Updates to a number of apps to remove warnings/compile errors under libc5.Eric Andersen
Tested under both libc5 and libc6 and all seems well with these fixes. -Erik
2000-05-17Some more portability updatesErik Andersen
-Erik
2000-05-13More doc updatesErik Andersen
-Erik
2000-05-12Lots of updates. Finished implementing BB_FEATURE_TRIVIAL_HELPErik Andersen
which lets you compile out most of the "--help" output, saving up to 17k. Renamed mnc to nc. -Erik
2000-05-01Some accrued fixes/updates.Erik Andersen
* cp/mv now accepts (and ignores) the -f flag, since it always does force anyway * tail can now accept -<num> commands (e.g. -10) for better compatibility with the standard tail command * added a simple id implementation; doesn't support supp. groups yet