Mercurial > cgi-bin > hgwebdir.cgi > VMS > VMS_Implementations > VSs_impls > VSs__MC_shared_impl
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 }