Re: Explanation on Uninitialized Variable bio in blk_rq_prep_clone

From: Hannes Reinecke
Date: Fri Oct 04 2024 - 10:15:51 EST


On 10/4/24 16:10, SurajSonawane2415 wrote:
Explaination of how bio could be used uninitialized in this function:

In the function blk_rq_prep_clone, the variable bio is declared but can remain uninitialized
if the allocation with bio_alloc_clone fails. This can lead to undefined behavior when the
function attempts to free bio in the error handling section using bio_put(bio).
By initializing bio to NULL at declaration, we ensure that the cleanup code will only
interact with bio if it has been successfully allocated.

Hate to say it, but it looks you are correct.
Care to send a patch?

Cheers,

Hannes
--
Dr. Hannes Reinecke Kernel Storage Architect
hare@xxxxxxx +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich