Fix a segfault in lash, hush, and cmdedit. Each of these used
[oweals/busybox.git] / dmesg.c
diff --git a/dmesg.c b/dmesg.c
index c220d90184f9e76d06a3401d1fd2e0dfde67ab10..73de6d1ae9ba84bf65f72f34b1f713b97fd208be 100644 (file)
--- a/dmesg.c
+++ b/dmesg.c
  * Support, replaced getopt, added some gotos for redundant stuff.
  */
 
-#include "busybox.h"
 #include <stdio.h>
 #include <stdlib.h>
+#include <getopt.h>
 
 #if __GNU_LIBRARY__ < 5
-
-#ifndef __alpha__
-# define __NR_klogctl __NR_syslog
-static inline _syscall3(int, klogctl, int, type, char *, b, int, len);
-#else                                                  /* __alpha__ */
-#define klogctl syslog
-#endif
-
+# ifdef __alpha__
+#   define klogctl syslog
+# endif
 #else
 # include <sys/klog.h>
 #endif
 
+#include "busybox.h"
+
 int dmesg_main(int argc, char **argv)
 {
        char *buf;
@@ -51,21 +48,21 @@ int dmesg_main(int argc, char **argv)
                case 'n':
                        cmd = 8;
                        if (optarg == NULL)
-                               usage(dmesg_usage);
+                               show_usage();
                        level = atoi(optarg);
                        break;
                case 's':
                        if (optarg == NULL)
-                               usage(dmesg_usage);
+                               show_usage();
                        bufsize = atoi(optarg);
                        break;
                default:
-                       usage(dmesg_usage);
+                       show_usage();
                }
        }                       
 
        if (optind < argc) {
-               goto end;
+               show_usage();
        }
 
        if (cmd == 8) {
@@ -95,7 +92,4 @@ int dmesg_main(int argc, char **argv)
        if (lastc != '\n')
                putchar('\n');
        return EXIT_SUCCESS;
-  end:
-       usage(dmesg_usage);
-       return EXIT_FAILURE;
 }