Memory overleak kdesi mezi httpd, php3 a mod_czech...
Ondrej X Dolezal
trifid na redigy.cz
Čtvrtek Červen 3 11:35:59 CEST 1999
> Kernel 2.2.9, Apache/1.2.6 mod_czech/3.0.2, php3 3.0.3.
> Obcas kdyz postuju formular, tak se mi dostanou do dat uplne
> nahodna data uplne odjinad. Obcas jsou to dva tri znaky na
> konci, obcas je to takovadle hruza (viz. nize). Nevi nekdo, cim
> by to tak mohlo byt? Pripadne jestli pomuze upgrade na novejsi
> verze?
> Ondra Sury.
Totez jsme meli u nas - pravda na 2.2.4/1.3.6/3.1.0b4/3.0.7,
problem je v PHP3 ktere si cte delku vstupu pred prekodovanim.
Pan Plechsmid mi poslal patch na PHP3, s nimz vse funguje ok.
-- mcz-patch-php3.0.7 --
--- functions/post.c.001 Mon Jan 04 14:25:21 1999
+++ functions/post.c Sun May 30 21:56:55 1999
@@ -91,7 +91,12 @@
}
length = GLOBAL(request_info).content_length;
cnt = length;
- buf = (char *) emalloc((length + 1) * sizeof(char));
+/* MOD_CZECH - begin */
+ /* Pro jistotu jsme zvetsili 2x. Aby to s jistotou fungovalo i pro
unicode,
+ * museli bychom buf zvetsit 6x! Hmm...extremni pripady budeme
ignorovat.
+ */
+ buf = (char *) emalloc((length + 1) * sizeof(char) * 2);
+/* MOD_CZECH - end */
if (!buf) {
php3_error(E_WARNING, "Unable to allocate memory in php3_getpost()");
return NULL;
@@ -118,6 +123,9 @@
}
signal(SIGPIPE, handler); /* restore normal sigpipe handling */
kill_timeout(GLOBAL(php3_rqst)); /* stop timeout timer */
+/* MOD_CZECH - begin */
+ cnt = dbpos;
+/* MOD_CZECH - end */
}
#else
cnt = 0;
--
- Ondrej.Dolezal na Redigy.Cz --------------------------------------------
(+420) 603 499 675 REDIGY Nesverova 1 Olomouc
------------------------------------------------ http://www.Redigy.Cz -
Další informace o konferenci Linux