bug fix in syncedprot.c (treat stackoverflow correctly)
This commit is contained in:
@ -163,10 +163,10 @@ long SyncedBegin(long syncid)
|
|||||||
return SYNCED_NO_MEMORY;
|
return SYNCED_NO_MEMORY;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sp++;
|
|
||||||
if (sp >= NSTACK) {
|
if (sp >= NSTACK) {
|
||||||
return SYNCED_STACK_OVERFLOW;
|
return SYNCED_STACK_OVERFLOW;
|
||||||
}
|
}
|
||||||
|
sp++;
|
||||||
sync->count++;
|
sync->count++;
|
||||||
actualSync = sync;
|
actualSync = sync;
|
||||||
return sync->id;
|
return sync->id;
|
||||||
@ -181,13 +181,13 @@ long SyncedEnd(long syncid)
|
|||||||
if (sp <= 0) {
|
if (sp <= 0) {
|
||||||
return SYNCED_STACK_UNDERFLOW;
|
return SYNCED_STACK_UNDERFLOW;
|
||||||
}
|
}
|
||||||
sync = actualSync;
|
|
||||||
sp--;
|
sp--;
|
||||||
|
sync = actualSync;
|
||||||
actualSync = stack[sp];
|
actualSync = stack[sp];
|
||||||
sync->count--;
|
if (sync->count <= 0) {
|
||||||
if (sync->count < 0) {
|
|
||||||
return SYNCED_COUNT_UNDERFLOW;
|
return SYNCED_COUNT_UNDERFLOW;
|
||||||
}
|
}
|
||||||
|
sync->count--;
|
||||||
if (syncid != 0 && syncid != sync->id) {
|
if (syncid != 0 && syncid != sync->id) {
|
||||||
return SYNCED_ID_MISMATCH;
|
return SYNCED_ID_MISMATCH;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user