diff options
author | Sascha Schumann <sas@php.net> | 2001-07-25 19:02:13 +0000 |
---|---|---|
committer | Sascha Schumann <sas@php.net> | 2001-07-25 19:02:13 +0000 |
commit | 00596b414e7944e83be38c194c7b36a848f5e09a (patch) | |
tree | 20e8c3d9ac1106dd3e01343d72f263c34b6168c8 | |
parent | 81dd2af4659020408dc808a0f04f6c4a3a8ed1cc (diff) | |
download | php-git-00596b414e7944e83be38c194c7b36a848f5e09a.tar.gz |
Get rid of memchr
-rw-r--r-- | ext/session/session.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/ext/session/session.c b/ext/session/session.c index 31f6c92f5c..831866df44 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -407,7 +407,13 @@ PS_SERIALIZER_DECODE_FUNC(php) PHP_VAR_UNSERIALIZE_INIT(var_hash); - for (p = q = val; (p < endptr) && (q = memchr(p, PS_DELIMITER, endptr - p)); p = q) { + p = val; + + while (p < endptr) { + q = p; + while (*q != PS_DELIMITER) + if (++q >= endptr) goto break_outer_loop; + if (p[0] == PS_UNDEF_MARKER) { p++; has_value = 0; @@ -428,8 +434,11 @@ PS_SERIALIZER_DECODE_FUNC(php) } PS_ADD_VARL(name, namelen); efree(name); + + p = q; } - +break_outer_loop: + PHP_VAR_UNSERIALIZE_DESTROY(var_hash); return SUCCESS; @@ -911,7 +920,7 @@ static void php_session_start(PSLS_D) int nrdels = -1; nrand = (int) (100.0*php_combined_lcg()); - if (nrand <= PS(gc_probability)) { + if (nrand < PS(gc_probability)) { PS(mod)->gc(&PS(mod_data), PS(gc_maxlifetime), &nrdels); #if 0 if (nrdels != -1) |