a few more GCC-isms removed
authorDenys Vlasenko <vda.linux@googlemail.com>
Wed, 9 Sep 2009 21:12:10 +0000 (23:12 +0200)
committerDenys Vlasenko <vda.linux@googlemail.com>
Wed, 9 Sep 2009 21:12:10 +0000 (23:12 +0200)
   text    data     bss     dec     hex filename
 824641     458    6956  832055   cb237 busybox_old
 824631     458    6956  832045   cb22d busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
coreutils/logname.c
editors/awk.c
loginutils/su.c

index 3400c30d957bf5192ca6e2e48b340314347d541d..7983d1704614ed6ec018ca6fc418872629e789ea 100644 (file)
@@ -27,7 +27,7 @@
 int logname_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
 int logname_main(int argc, char **argv UNUSED_PARAM)
 {
-       char buf[128];
+       char buf[64];
 
        if (argc > 1) {
                bb_show_usage();
index 30f09cbaf79698ac13901f89cce2d54e9a0d5607..cb98a67b668db9f366b53c7fffe91bdce4d6df72 100644 (file)
@@ -114,7 +114,7 @@ typedef struct nvblock_s {
        var *pos;
        struct nvblock_s *prev;
        struct nvblock_s *next;
-       var nv[0];
+       var nv[];
 } nvblock;
 
 typedef struct tsplitter_s {
index a8b852b09a62dbad17aab6d06d8eae60409081b7..a3f7ed8a08a24f7e883376e4ae381edae870a6ae 100644 (file)
@@ -40,11 +40,24 @@ int su_main(int argc UNUSED_PARAM, char **argv)
 
        if (ENABLE_FEATURE_SU_SYSLOG) {
                /* The utmp entry (via getlogin) is probably the best way to identify
-               the user, especially if someone su's from a su-shell.
-               But getlogin can fail -- usually due to lack of utmp entry.
-               in this case resort to getpwuid.  */
-               old_user = xstrdup(IF_FEATURE_UTMP(getlogin() ? : ) (pw = getpwuid(cur_uid)) ? pw->pw_name : "");
-               tty = xmalloc_ttyname(2) ? : "none";
+                * the user, especially if someone su's from a su-shell.
+                * But getlogin can fail -- usually due to lack of utmp entry.
+                * in this case resort to getpwuid.  */
+               const char *user;
+#if ENABLE_FEATURE_UTMP
+               char user_buf[64];
+               user = user_buf;
+               if (getlogin_r(user_buf, sizeof(user_buf)) != 0)
+#endif
+               {
+                       pw = getpwuid(cur_uid);
+                       user = pw ? pw->pw_name : "";
+               }
+               old_user = xstrdup(user);
+               tty = xmalloc_ttyname(2);
+               if (!tty) {
+                       tty = "none";
+               }
                openlog(applet_name, 0, LOG_AUTH);
        }