(inet_network): Add missing part of last patch.
authorUlrich Drepper <drepper@redhat.com>
Sat, 12 Feb 2000 07:38:04 +0000 (07:38 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 12 Feb 2000 07:38:04 +0000 (07:38 +0000)
inet/inet_net.c
posix/getopt.c
sysdeps/unix/sysv/linux/i386/shmctl.c

index 78d22cd..e9331c5 100644 (file)
@@ -83,6 +83,8 @@ again:
        }
        if (*cp && !isspace(*cp))
                return (INADDR_NONE);
+       if (pp >= parts + 4 || val > 0xff)
+               return (INADDR_NONE);
        *pp++ = val;
        n = pp - parts;
        for (val = 0, i = 0; i < n; i++) {
index efd8223..4744e43 100644 (file)
@@ -3,7 +3,7 @@
    "Keep this file name-space clean" means, talk to drepper@gnu.org
    before changing it!
 
-   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99
+   Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
        Free Software Foundation, Inc.
 
    The GNU C Library is free software; you can redistribute it and/or
@@ -517,6 +517,10 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
      int *longind;
      int long_only;
 {
+  int print_errors = opterr;
+  if (optstring[0] == ':')
+    print_errors = 0;
+
   optarg = NULL;
 
   if (optind == 0 || !__getopt_initialized)
@@ -673,7 +677,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
 
       if (ambig && !exact)
        {
-         if (opterr)
+         if (print_errors)
            fprintf (stderr, _("%s: option `%s' is ambiguous\n"),
                     argv[0], argv[optind]);
          nextchar += strlen (nextchar);
@@ -694,7 +698,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
                optarg = nameend + 1;
              else
                {
-                 if (opterr)
+                 if (print_errors)
                    {
                      if (argv[optind - 1][1] == '-')
                        /* --option */
@@ -720,7 +724,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
                optarg = argv[optind++];
              else
                {
-                 if (opterr)
+                 if (print_errors)
                    fprintf (stderr,
                           _("%s: option `%s' requires an argument\n"),
                           argv[0], argv[optind - 1]);
@@ -747,7 +751,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
       if (!long_only || argv[optind][1] == '-'
          || my_index (optstring, *nextchar) == NULL)
        {
-         if (opterr)
+         if (print_errors)
            {
              if (argv[optind][1] == '-')
                /* --option */
@@ -777,7 +781,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
 
     if (temp == NULL || c == ':')
       {
-       if (opterr)
+       if (print_errors)
          {
            if (posixly_correct)
              /* 1003.2 specifies the format of this message.  */
@@ -811,7 +815,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
          }
        else if (optind == argc)
          {
-           if (opterr)
+           if (print_errors)
              {
                /* 1003.2 specifies the format of this message.  */
                fprintf (stderr, _("%s: option requires an argument -- %c\n"),
@@ -860,7 +864,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
            }
        if (ambig && !exact)
          {
-           if (opterr)
+           if (print_errors)
              fprintf (stderr, _("%s: option `-W %s' is ambiguous\n"),
                       argv[0], argv[optind]);
            nextchar += strlen (nextchar);
@@ -878,7 +882,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
                  optarg = nameend + 1;
                else
                  {
-                   if (opterr)
+                   if (print_errors)
                      fprintf (stderr, _("\
 %s: option `-W %s' doesn't allow an argument\n"),
                               argv[0], pfound->name);
@@ -893,7 +897,7 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
                  optarg = argv[optind++];
                else
                  {
-                   if (opterr)
+                   if (print_errors)
                      fprintf (stderr,
                               _("%s: option `%s' requires an argument\n"),
                               argv[0], argv[optind - 1]);
@@ -940,12 +944,12 @@ _getopt_internal (argc, argv, optstring, longopts, longind, long_only)
              }
            else if (optind == argc)
              {
-               if (opterr)
+               if (print_errors)
                  {
                    /* 1003.2 specifies the format of this message.  */
                    fprintf (stderr,
-                          _("%s: option requires an argument -- %c\n"),
-                          argv[0], c);
+                            _("%s: option requires an argument -- %c\n"),
+                            argv[0], c);
                  }
                optopt = c;
                if (optstring[0] == ':')
index 0b68d78..9574161 100644 (file)
@@ -90,6 +90,7 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
 
   {
     struct __old_shmid_ds old;
+    int result;
 
 # ifdef __NR_getuid32
     if (__libc_missing_32bit_uids <= 0)
@@ -107,10 +108,8 @@ __new_shmctl (int shmid, int cmd, struct shmid_ds *buf)
            __set_errno(save_errno);
          }
        if (__libc_missing_32bit_uids <= 0)
-         {
-           result = INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64, 0, buf);
-           return result;
-         }
+         return INLINE_SYSCALL (ipc, 5, IPCOP_shmctl, shmid, cmd | __IPC_64,
+                                0, buf);
       }
 # endif