You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2012/10/02 15:06:39 UTC
svn commit: r1392899 - in /httpd/httpd/branches/2.4.x: ./ STATUS
modules/slotmem/mod_slotmem_shm.c
Author: jim
Date: Tue Oct 2 13:06:39 2012
New Revision: 1392899
URL: http://svn.apache.org/viewvc?rev=1392899&view=rev
Log:
Merge r1386822 from trunk:
More consistent return errors...
Reviewed/backported by: jim
Modified:
httpd/httpd/branches/2.4.x/ (props changed)
httpd/httpd/branches/2.4.x/STATUS
httpd/httpd/branches/2.4.x/modules/slotmem/mod_slotmem_shm.c
Propchange: httpd/httpd/branches/2.4.x/
------------------------------------------------------------------------------
Merged /httpd/httpd/trunk:r1386822
Modified: httpd/httpd/branches/2.4.x/STATUS
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/STATUS?rev=1392899&r1=1392898&r2=1392899&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/STATUS (original)
+++ httpd/httpd/branches/2.4.x/STATUS Tue Oct 2 13:06:39 2012
@@ -89,10 +89,6 @@ RELEASE SHOWSTOPPERS:
PATCHES ACCEPTED TO BACKPORT FROM TRUNK:
[ start all new proposals below, under PATCHES PROPOSED. ]
- * mod_slotmem_shm: Consistent and logical return errors
- trunk patch: http://svn.apache.org/viewvc?view=revision&revision=1386822
- 2.4.x patch: trunk patch works
- +1: jim, humbedooh, trawick
PATCHES PROPOSED TO BACKPORT FROM TRUNK:
[ New proposals should be added at the end of the list ]
Modified: httpd/httpd/branches/2.4.x/modules/slotmem/mod_slotmem_shm.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.4.x/modules/slotmem/mod_slotmem_shm.c?rev=1392899&r1=1392898&r2=1392899&view=diff
==============================================================================
--- httpd/httpd/branches/2.4.x/modules/slotmem/mod_slotmem_shm.c (original)
+++ httpd/httpd/branches/2.4.x/modules/slotmem/mod_slotmem_shm.c Tue Oct 2 13:06:39 2012
@@ -477,7 +477,7 @@ static apr_status_t slotmem_dptr(ap_slot
return APR_ENOSHMAVAIL;
}
if (id >= slot->desc.num) {
- return APR_ENOSHMAVAIL;
+ return APR_EINVAL;
}
ptr = (char *)slot->base + slot->desc.size * id;
@@ -500,7 +500,10 @@ static apr_status_t slotmem_get(ap_slotm
}
inuse = slot->inuse + id;
- if (id >= slot->desc.num || (AP_SLOTMEM_IS_PREGRAB(slot) && !*inuse)) {
+ if (id >= slot->desc.num) {
+ return APR_EINVAL;
+ }
+ if (AP_SLOTMEM_IS_PREGRAB(slot) && !*inuse) {
return APR_NOTFOUND;
}
ret = slotmem_dptr(slot, id, &ptr);
@@ -524,7 +527,10 @@ static apr_status_t slotmem_put(ap_slotm
}
inuse = slot->inuse + id;
- if (id >= slot->desc.num || (AP_SLOTMEM_IS_PREGRAB(slot) && !*inuse)) {
+ if (id >= slot->desc.num) {
+ return APR_EINVAL;
+ }
+ if (AP_SLOTMEM_IS_PREGRAB(slot) && !*inuse) {
return APR_NOTFOUND;
}
ret = slotmem_dptr(slot, id, &ptr);
@@ -606,7 +612,11 @@ static apr_status_t slotmem_release(ap_s
"slotmem(%s) release failed. Num %u/inuse[%u] %d",
slot->name, slotmem_num_slots(slot),
id, (int)inuse[id]);
- return APR_NOTFOUND;
+ if (id >= slot->desc.num) {
+ return APR_EINVAL;
+ } else {
+ return APR_NOTFOUND;
+ }
}
inuse[id] = 0;
(*slot->num_free)++;