Hi Joe, Appreciate the response. thanks  This is similar to what someone else 
told me too (that it may be a non-null terminated string issue). The point is 
how can I debug it further.I currently am printing all the character portions 
of the request rec including the headers_out and err_headers_out to log using 
fprintf statements to stderr. I think I tried breifly with ap_log_rerror too... 
Will try again, but the basic redirection string seems to be getting properly 
from what I can see visually in the logs. Is there any way to force null 
termination of these strings or of say all parameters in the request rec. The 
other thing is that this occurs mainly after restart and works on in say 5-10 
attempts  but once it works once, it seems to work everytime which is probably 
in line with your diagnosis too ...

----- Original Message -----
From: Joe Lewis <modules-dev@httpd.apache.org>
To: modules-dev@httpd.apache.org
At: 12/10  9:16:12

SAILESH KRISHNAMURTI, BLOOMBERG/ 731 LEXIN wrote:
> Hi, i have an authentication module that i am trying to port from 64 bit 
> linux to 32 bit solaris. The problem is that when the module redirects the 
> request to the authentication page, the URL seems to be getting corrupted when

> it is passed betwen the module and apache core.                               
 
>  For
> E.G; Within the module request_rec->headers_out is /loginPage/Somelogin.cgi
>  apache seems to actually redirect to:\xfb\xab\x98\xb0Page/Somelogin.cgi
>  i dont know why this is getting corrupted. Tried logging various parts of the
>  request_rec but didnt find anything. Does anyone have any ideas?
>   
An idea : A variable in the same pool memory was written to that is too
big, overwriting data. I encountered this most often using strings that
were not NULL terminated as normal C programs expected. I would
typically place a couple of ap_log_rerror statements, printing the table
entry for headers_out that you are expecting. Once you narrow it down,
take a close look at the code that is used, and you should find your
specific problem. (If you have forced a size value in the conversion
from 32 bit to 64 bit, you may be overwriting a subsequent string that
you are trying to copy in).

Joe
-- 
Joseph Lewis <http://sharktooth.org/>
"Divide the fire, and you will sooner put it out." - Publius Syrus

Reply via email to