Changeset 1077 for trunk/dll/treecnr.c


Ignore:
Timestamp:
Jul 18, 2008, 8:11:54 PM (17 years ago)
Author:
Steven Levine
Message:

Enhance Fortify infrastructure
Add Fortify_SetOwner Fortify_ChangeOwner Fortify_ChangeScope
Add FORTIFY_VERBOSE_SCOPE_ENTER_EXIT support
Add more fm/2 Fortify tooling and rework existing tooling for correct nesting
Still lots to do for cross-thread allocations
Add misc.h
Add walkem.h

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/treecnr.c

    r1063 r1077  
    6666#include "strutil.h"                    // GetPString
    6767#include "notebook.h"                   // CfgDlgProc
    68 #include "command.h"                    // RunCommand
     68#include "command.h"                    // RunCommand
    6969#include "fm3dll.h"
    7070
     
    544544  switch (msg) {
    545545  case WM_CREATE:
     546    DbgMsg(pszSrcFile, __LINE__, "WM_CREATE mp1 %p mp2 %p", mp1, mp2);  // 18 Jul 08 SHL fixme
    546547    break;
    547548
     
    628629
    629630  case UM_SETUP:
     631#   ifdef FORTIFY
     632    Fortify_EnterScope();
     633#   endif
    630634    dcd = WinQueryWindowPtr(hwnd, QWL_USER);
    631635    if (!dcd)
    632636      Runtime_Error2(pszSrcFile, __LINE__, IDS_NODATATEXT);
    633637    else {
     638#     ifdef FORTIFY
     639      Fortify_ChangeOwner(dcd);
     640#     endif
    634641      dcd->hwndObject = hwnd;
    635642      if (ParentIsDesktop(hwnd, dcd->hwndParent))
     
    785792      else {
    786793        WORKER *wk;
    787 #       ifdef FORTIFY
    788         Fortify_EnterScope();
    789 #        endif
     794#       ifdef FORTIFY
     795        Fortify_EnterScope();
     796#       endif
    790797        wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__);
    791798        if (!wk)
     
    802809            Runtime_Error(pszSrcFile, __LINE__,
    803810                          GetPString(IDS_COULDNTSTARTTHREADTEXT));
    804             free(wk);
     811            free(wk);
    805812            FreeListInfo((LISTINFO *) mp1);
    806813          }
    807814        }
    808 #       ifdef FORTIFY
    809         Fortify_LeaveScope();
    810 #        endif
     815#       ifdef FORTIFY
     816        Fortify_LeaveScope();
     817#       endif
    811818      }
    812819    }
     
    814821
    815822  case UM_ACTION:
     823#   ifdef FORTIFY
     824    Fortify_EnterScope();
     825#   endif
    816826    if (mp1) {
    817 
     827#     ifdef FORTIFY
     828      Fortify_ChangeOwner(mp1);
     829#     endif
    818830      dcd = WinQueryWindowPtr(hwnd, QWL_USER);
    819831      if (!dcd)
     
    821833      else {
    822834        WORKER *wk;
    823 #       ifdef FORTIFY
    824         Fortify_EnterScope();
    825 #        endif
    826835        wk = xmallocz(sizeof(WORKER), pszSrcFile, __LINE__);
    827836        if (!wk)
     
    838847            Runtime_Error(pszSrcFile, __LINE__,
    839848                          GetPString(IDS_COULDNTSTARTTHREADTEXT));
    840             free(wk);
     849            free(wk);
    841850            FreeListInfo((LISTINFO *) mp1);
    842851          }
    843852        }
    844 #      ifdef FORTIFY
    845        Fortify_LeaveScope();
    846 #       endif
    847       }
    848     }
     853      }
     854    }
     855#   ifdef FORTIFY
     856    Fortify_LeaveScope();
     857#   endif
    849858    return 0;
    850859
     
    862871#     ifdef FORTIFY
    863872      Fortify_LeaveScope();
    864 #      endif
     873#     endif
    865874      WinSetWindowPtr(dcd->hwndCnr, QWL_USER, NULL);
    866875    }
     
    879888
    880889  switch (msg) {
     890  case WM_CREATE:
     891    DbgMsg(pszSrcFile, __LINE__, "WM_CREATE mp1 %p mp2 %p", mp1, mp2);  // 18 Jul 08 SHL fixme
     892    break;
     893
    881894  case DM_PRINTOBJECT:
    882895    return MRFROMLONG(DRR_TARGET);
     
    11721185         * first time through -- set things up
    11731186         */
    1174 
    11751187        CNRINFO cnri;
     1188
     1189#       ifdef FORTIFY
     1190        Fortify_EnterScope();
     1191#       endif
    11761192
    11771193        RestorePresParams(hwnd, "TreeCnr");
     
    21732189
    21742190      if ((INT)mp1 == 5 || (INT)mp1 == 13 || (INT)mp1 == 21)
    2175         hwnd = StartViewer(HWND_DESKTOP, (INT)mp1,
    2176                            (CHAR *)mp2, dcd->hwndFrame);
     2191        hwnd = StartViewer(HWND_DESKTOP, (INT)mp1,
     2192                           (CHAR *)mp2, dcd->hwndFrame);
    21772193      else
    2178         hwnd = StartMLEEditor(dcd->hwndParent,
    2179                               (INT)mp1, (CHAR *)mp2, dcd->hwndFrame);
     2194        hwnd = StartMLEEditor(dcd->hwndParent,
     2195                              (INT)mp1, (CHAR *)mp2, dcd->hwndFrame);
    21802196      free((CHAR *)mp2);
    21812197      return MRFROMLONG(hwnd);
     
    27612777          LISTINFO *li;
    27622778          ULONG action = UM_ACTION;
    2763 #         ifdef FORTIFY
    2764           Fortify_EnterScope();
    2765 #         endif
     2779#         ifdef FORTIFY
     2780          Fortify_EnterScope();
     2781#         endif
    27662782          li = xmallocz(sizeof(LISTINFO), pszSrcFile, __LINE__);
    27672783          if (li) {
     
    27712787            if (!li->list || !li->list[0]) {
    27722788              free(li);
    2773 #             ifdef FORTIFY
    2774               Fortify_LeaveScope();
    2775 #              endif
    27762789              break;
    27772790            }
     
    27892802                mp1 = MPFROM2SHORT(IDM_INFO, SHORT2FROMMP(mp1));
    27902803                li->type = IDM_INFO;
    2791                 break;
    27922804              }
    27932805            }
     
    28112823            case IDM_MCIPLAY:
    28122824              action = UM_MASSACTION;
    2813               break;
    28142825            }
    28152826            if (SHORT1FROMMP(mp1) == IDM_SHADOW ||
     
    28212832            }
    28222833          }
     2834#         ifdef FORTIFY
     2835          Fortify_LeaveScope();
     2836#         endif
    28232837        }
    28242838        break;
     
    29352949    EmptyCnr(hwnd);
    29362950    if (apphead) {
    2937 
    29382951      APPNOTIFY *info, *next;
    2939 
    29402952      info = apphead;
    29412953      while (info) {
     
    29462958      apphead = apptail = NULL;
    29472959    }
    2948     break;
    2949   }
     2960#   ifdef FORTIFY
     2961    // if (dcd)
     2962    //  Fortify_ChangeScope(dcd, -1);
     2963    Fortify_LeaveScope();
     2964    // if (dcd)
     2965    //  Fortify_ChangeScope(dcd, -1);
     2966#   endif
     2967    break; // WM_DESTROY
     2968  } // switch
    29502969  if (dcd && dcd->oldproc){
    29512970      return dcd->oldproc(hwnd, msg, mp1, mp2);
     
    29983017#   ifdef FORTIFY
    29993018    Fortify_EnterScope();
    3000 #    endif
     3019#   endif
    30013020    dcd = xmallocz(sizeof(DIRCNRDATA), pszSrcFile, __LINE__);
    30023021    if (!dcd) {
     
    30073026    else {
    30083027      SWP swp;
    3009 
    30103028      WinQueryWindowPos(hwndFrame, &swp);
    30113029      if (*(ULONG *) realappname == FM3UL) {
     
    30823100                   IDS_WINCREATEWINDOW);
    30833101        PostMsg(hwndClient, WM_CLOSE, MPVOID, MPVOID);
    3084         free(dcd);
    3085 #       ifdef FORTIFY
    3086         Fortify_LeaveScope();
    3087 #        endif
     3102        free(dcd);
     3103        dcd = 0;
    30883104        hwndFrame = (HWND) 0;
    30893105      }
     
    31093125      }
    31103126    }
     3127#   ifdef FORTIFY
     3128    if (dcd)
     3129      Fortify_ChangeScope(dcd, -1);
     3130    Fortify_LeaveScope();
     3131    if (dcd)
     3132      Fortify_ChangeScope(dcd, +1);
     3133#   endif
    31113134  }
    31123135  return hwndFrame;
Note: See TracChangeset for help on using the changeset viewer.