Changeset 806 for trunk/dll/avl.c


Ignore:
Timestamp:
Aug 26, 2007, 5:32:39 AM (18 years ago)
Author:
Steven Levine
Message:

load_archivers: add missing close on error path

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/avl.c

    r793 r806  
    77
    88  Copyright (c) 1993, 1998 M. Kimes
    9   Copyright (c) 2004, 2006 Steven H.Levine
     9  Copyright (c) 2004, 2007 Steven H.Levine
    1010
    1111  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    2929  19 Apr 07 SHL Add more drag/drop error checking
    3030  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
     31  25 Aug 07 SHL load_archivers: add missing close on error path
    3132
    3233***********************************************************************/
     
    319320  if (*sz)
    320321    lines_per_arcsig = atoi(sz);
    321   if (!*sz || lines_per_arcsig < LINES_PER_ARCSIG)
     322  if (!*sz || lines_per_arcsig < LINES_PER_ARCSIG) {
     323    fclose(fp);                         // 25 Aug 07 SHL
    322324    return -3;
     325  }
    323326
    324327  // Parse rest of file
     
    623626    if (pDInfo) {
    624627      if (!DrgAccessDraginfo(pDInfo)) {
    625         Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__,
    626                   "DrgAccessDraginfo");
     628        Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__,
     629                  "DrgAccessDraginfo");
    627630      }
    628631      else {
    629         pDItem = DrgQueryDragitemPtr(pDInfo, 0);
    630         /* Check valid rendering mechanisms and data format */
    631         ok = DrgVerifyRMF(pDItem, DRM_LBOX, NULL);
    632         DrgFreeDraginfo(pDInfo);
     632        pDItem = DrgQueryDragitemPtr(pDInfo, 0);
     633        /* Check valid rendering mechanisms and data format */
     634        ok = DrgVerifyRMF(pDItem, DRM_LBOX, NULL);
     635        DrgFreeDraginfo(pDInfo);
    633636      }
    634637    }
    635638    return ok ? MRFROM2SHORT(DOR_DROP, DO_MOVE) :
    636                 MRFROM2SHORT(DOR_NEVERDROP, 0);
     639                MRFROM2SHORT(DOR_NEVERDROP, 0);
    637640
    638641  case DM_DRAGLEAVE:
     
    659662    if (pDInfo) {
    660663      if (!DrgAccessDraginfo(pDInfo)) {
    661         Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__,
    662                   "DrgAccessDraginfo");
     664        Win_Error(HWND_DESKTOP, HWND_DESKTOP, pszSrcFile, __LINE__,
     665                  "DrgAccessDraginfo");
    663666      }
    664667      else {
    665         pDItem = DrgQueryDragitemPtr(pDInfo, 0);
    666         if (!pDItem)
     668        pDItem = DrgQueryDragitemPtr(pDInfo, 0);
     669        if (!pDItem)
    667670          Win_Error(hwnd, hwnd, pszSrcFile, __LINE__, "DM_DROP");
    668         /* Check valid rendering mechanisms and data */
    669         ok = DrgVerifyRMF(pDItem, DRM_LBOX, NULL)
    670                           && ~pDItem->fsControl & DC_PREPARE;
    671         if (ok) {
     671        /* Check valid rendering mechanisms and data */
     672        ok = DrgVerifyRMF(pDItem, DRM_LBOX, NULL)
     673                          && ~pDItem->fsControl & DC_PREPARE;
     674        if (ok) {
    672675          // ret = FullDrgName(pDItem,buffer,buflen);
    673676          /* note: targetfail is returned to source for all items */
     
    675678                             MPFROMLONG(pDItem->ulItemID),
    676679                             MPFROMLONG(DMFL_TARGETSUCCESSFUL));
    677         }
    678         FreeDragInfoData(hwnd, pDInfo);
     680        }
     681        FreeDragInfoData(hwnd, pDInfo);
    679682      }
    680683    }
Note: See TracChangeset for help on using the changeset viewer.