httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Franz Schwartau <>
Subject Re: New module for anonymous ip logging
Date Wed, 06 Oct 2010 07:35:44 GMT
Hi Ben,

thanks for your answer.

On 06.10.2010 01:11, Ben Noordhuis wrote:
> Hi Franz, welcome. Replies inline:
> On Wed, Oct 6, 2010 at 00:49, Franz Schwartau <> wrote:
>> How should the module react to a failed initialization of seed_rand() in
>> iphash_create_server_config() (line 90)? Returning NULL in
>> iphash_create_server_config() doesn't seem to help. I'd like to disable
>> the module somehow if the random generator could be initialized properly.
> Add a 'initialized' flag to iphash_config_t and check its value in log_ip_hash.
> That said, if security is an issue - which I presume it is - you are
> probably better off aborting.

I thought about something like this, too. The seeding in
iphash_create_server_config() could be rewritten to

if ((rv = seed_rand())) {
	ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
		"Unable to generate random bytes: %pm", &rv);
} else {
	 generate_salt(cf->salt, SALT_SIZE);


In log_ip_hash() (the function registered with log_pfn_register()) I
could check if cf->salt is non empty. So I could save a flag.

But how exactly can I "abort"? If NULL is returned from log_ip_hash() a
'-' is printed for the % directive from mod_log_iphash only.

>> No other module checks if the return value of apr_palloc() or
>> apr_pcalloc() is NULL. Does it mean memory allocation via apr_palloc()
>> will never fail and memory size is indefinitely? ;-)
> Yep. And if memory turns out to be finite after all, the APR will tear
> down the process.

Ah, ok, I see. Thanks for clarifying. I'm not familiar with APR, yet.
But not checking the return value is strange if you are used to plain
malloc(). :-)

	Best regards

View raw message