changeset 36:94911329b067 dev_expl_VP_and_DKU

fix access after free in reqHdlr
author Nina Engelhardt <nengel@mailbox.tu-berlin.de>
date Mon, 15 Apr 2013 16:41:31 +0200
parents 71a20aa9d17a
children c8d4f6d3c7d3
files Measurement/VSs_Counter_Recording.c VSs_PluginFns.c VSs_Request_Handlers.c
diffstat 3 files changed, 4 insertions(+), 2 deletions(-) [+]
line diff
     1.1 --- a/Measurement/VSs_Counter_Recording.c	Wed Mar 06 15:56:09 2013 +0100
     1.2 +++ b/Measurement/VSs_Counter_Recording.c	Mon Apr 15 16:41:31 2013 +0200
     1.3 @@ -13,7 +13,7 @@
     1.4      VSsSemEnv *semanticEnv = _VMSMasterEnv->semanticEnv;
     1.5      int i;
     1.6      for(i=0;i<NUM_CORES;i++){
     1.7 -        semanticEnv->counterList[i] = makeListOfArrays(sizeof(CounterEvent), 128);
     1.8 +        semanticEnv->counterList[i] = makeListOfArrays(sizeof(CounterEvent), 524288);
     1.9      }
    1.10  }
    1.11  
     2.1 --- a/VSs_PluginFns.c	Wed Mar 06 15:56:09 2013 +0100
     2.2 +++ b/VSs_PluginFns.c	Mon Apr 15 16:41:31 2013 +0200
     2.3 @@ -225,7 +225,7 @@
     2.4              case createReq: handleCreate(req, requestingSlv, semEnv);
     2.5                  break;
     2.6              case dissipate: handleDissipate(requestingSlv, semEnv);
     2.7 -                break;
     2.8 +                return; //don't take out another req from free'd VP
     2.9              case VMSSemantic: VMS_PI__handle_VMSSemReq(req, requestingSlv, semEnv,
    2.10                          (ResumeSlvFnPtr) & resume_slaveVP);
    2.11                  break;
     3.1 --- a/VSs_Request_Handlers.c	Wed Mar 06 15:56:09 2013 +0100
     3.2 +++ b/VSs_Request_Handlers.c	Mon Apr 15 16:41:31 2013 +0200
     3.3 @@ -83,10 +83,12 @@
     3.4  
     3.5  void free_pointer_entry(void* _ptrEntry) {
     3.6      VSsPointerEntry* ptrEntry = (VSsPointerEntry*)_ptrEntry;
     3.7 +#ifdef DEBUG_PRIVATE_Q
     3.8      int entriesStillInQ = ptrEntry->waitersQ->numWrites - ptrEntry->waitersQ->numReads;
     3.9      if (entriesStillInQ) {
    3.10          DEBUG__printf(dbgRqstHdlr, "Deleting Queue with %d entries still remaining", entriesStillInQ);
    3.11      }
    3.12 +#endif
    3.13      freePrivQ(ptrEntry->waitersQ);
    3.14      VMS_int__free(ptrEntry);
    3.15  }