components/autogen/patches/autoopts-numeric.c.patch
author saurabh.vyas@oracle.com
Fri, 08 May 2015 11:22:54 -0700
changeset 4264 7d52b0c22474
parent 1636 d3ad0c91bf12
permissions -rw-r--r--
21027466 problem in SERVICE/KEYSTONE
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1636
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     1
Prevent "/usr/bin/columns --help" from crashing.
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     2
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     3
This problem has been reported upstream and fixed in a future autogen
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     4
release. The autogen maintainer says:
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     5
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     6
"This is a very long standing bug that I'm surprised hasn't surfaced before:
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     7
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     8
In autoopts/numeric.c we have:
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
     9
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    10
    /*
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    11
     *  Numeric options may have a range associated with it.
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    12
     *  If it does, the usage procedure requests that it be
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    13
     *  emitted by passing a NULL od pointer.  Also bail out
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    14
     *  if there is no option argument or if we are being reset.
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    15
     */
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    16
    if (  (od == NULL)
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    17
       || (od->optArg.argString == NULL)
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    18
       || ((od->fOptState & OPTST_RESET) != 0))
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    19
        return;
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    20
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    21
    errno = 0;
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    22
    val = strtol(od->optArg.argString, &pz, 0);
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    23
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    24
Another condition for that bail-out needs to be whether or not
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    25
the "argString" has just been set.  It has not been in this case
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    26
because we are trying to tease out some usage information."
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    27
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    28
This patch is based on the solution provided by the autogen maintainer.
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    29
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    30
--- autogen-5.16.2/autoopts/numeric.c.orig	2014-01-09 12:50:03.575210189 -0800
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    31
+++ autogen-5.16.2/autoopts/numeric.c	2014-01-09 13:08:29.709753147 -0800
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    32
@@ -111,7 +111,8 @@
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    33
      */
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    34
     if (  (pOD == NULL)
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    35
        || (pOD->optArg.argString == NULL)
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    36
-       || ((pOD->fOptState & OPTST_RESET) != 0))
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    37
+       || ((pOD->fOptState & OPTST_RESET) != 0)
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    38
+       || (pOpts <= OPTPROC_EMIT_LIMIT))
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    39
         return;
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    40
 
d3ad0c91bf12 18039022 Running "/usr/bin/columns --help" crashes with segmentation fault
Rich Burridge <rich.burridge@oracle.com>
parents:
diff changeset
    41
     errno = 0;