RPM Package Manager, CVS Repository
  http://rpm5.org/cvs/
  ____________________________________________________________________________

  Server: rpm5.org                         Name:   Ralf S. Engelschall
  Root:   /v/rpm/cvs                       Email:  [EMAIL PROTECTED]
  Module: rpm                              Date:   11-Jun-2007 08:14:11
  Branch: HEAD                             Handle: 2007061107141100

  Modified files:
    rpm/popt                popt.c

  Log:
    plug two obvious memory holes (actually there are even more in the
    same function inside #ifdef/#endif but I don't want to change the code
    too much at this point)

  Summary:
    Revision    Changes     Path
    1.96        +7  -2      rpm/popt/popt.c
  ____________________________________________________________________________

  patch -p0 <<'@@ .'
  Index: rpm/popt/popt.c
  ============================================================================
  $ cvs diff -u -r1.95 -r1.96 popt.c
  --- rpm/popt/popt.c   25 May 2007 17:36:23 -0000      1.95
  +++ rpm/popt/popt.c   11 Jun 2007 06:14:11 -0000      1.96
  @@ -398,7 +398,10 @@
        argv[argc] = s;
       } else
        argv[argc] = findProgramPath(item->argv[0]);
  -    if (argv[argc++] == NULL) return POPT_ERROR_NOARG;
  +    if (argv[argc++] == NULL) {
  +     free(argv);
  +     return POPT_ERROR_NOARG;
  +    }
   
       if (item->argc > 1) {
        memcpy(argv + argc, item->argv + 1, sizeof(*argv) * (item->argc - 1));
  @@ -444,8 +447,10 @@
   #endif
   #endif
   
  -    if (argv[0] == NULL)
  +    if (argv[0] == NULL) {
  +     free(argv);
        return POPT_ERROR_NOARG;
  +    }
   
   #ifdef       MYDEBUG
   if (_popt_debug)
  @@ .
______________________________________________________________________
RPM Package Manager                                    http://rpm5.org
CVS Sources Repository                                [email protected]

Reply via email to