if (!slot) {
return APR_ENOSHMAVAIL;
}
- if (id < 0 || id > slot->num) {
+ if (id < 0 || id >= slot->num) {
return APR_ENOSHMAVAIL;
}
}
inuse = (slot->base + (slot->size * slot->num));
- if (!inuse[id]) {
- return APR_ENOSHMAVAIL;
+ if (id >= slot->num || !inuse[id] ) {
+ return APR_NOTFOUND;
}
ret = slotmem_mem(slot, id, &ptr);
if (ret != APR_SUCCESS) {
}
inuse = (slot->base + (slot->size * slot->num));
- if (!inuse[id]) {
- return APR_ENOSHMAVAIL;
+ if (id >= slot->num || !inuse[id] ) {
+ return APR_NOTFOUND;
}
ret = slotmem_mem(slot, id, &ptr);
if (ret != APR_SUCCESS) {
inuse = (slot->base + (slot->size * slot->num));
SLOTMEM_LOCK(slot->smutex);
- if (!inuse[id]) {
+ if (id >= slot->num || !inuse[id] ) {
SLOTMEM_UNLOCK(slot->smutex);
- return APR_ENOSHMAVAIL;
+ return APR_NOTFOUND;
}
inuse[id] = 0;
SLOTMEM_UNLOCK(slot->smutex);