[sr-dev] pua module db query bug

Daniel-Constantin Mierla miconda at gmail.com
Sun Oct 12 11:03:34 CEST 2014


On 12/10/14 10:56, Juha Heinanen wrote:
> Daniel-Constantin Mierla writes:
>
>> Based on above, the function update_record_puadb() should return without
>> doing the db update if pres->etag.s is not set. It should end up in an
>> insert if pres->etag.s is not set.
> i'm not sure, since publ_cback_func() does make insert explicitly if
> record is not found.  but it does not get that far, because for some
> reason, i see that this test succeeds:
>
> 	if (pua_dbf.affected_rows != NULL || dbmode != PUA_DB_ONLY)
> 	{
> 		INFO("find_and_update_record\n");
> 		if (find_and_update_record(hentity, hash_code, lexpire, &etag) > 0)
In the function of the above line is done an update with the etag not 
set and it shouldn't.

Either here the condition should be on hentity->etag.s being not null as 
well or the update_record_puadb() shoudl have its own safety check on 
etag (-- or even both for performance/safety).

> 			goto done;
> 	}
>
> what query is pua_dbf.affected_rows here referring to?

That is a check to see if that database connector module implements 
affected_rows function -- not a check of a result of affected rows.

Daniel


>    i have not found
> in the function any db queries before the test.
>
> -- juha

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda




More information about the sr-dev mailing list