[libcamera-devel] [PATCH] libcamera: ipa_module: prevent uninitialised access

Laurent Pinchart laurent.pinchart at ideasonboard.com
Thu Jul 18 16:04:09 CEST 2019


Hi Kieran,

Thank you for the patch.

On Thu, Jul 18, 2019 at 06:06:17AM +0100, Kieran Bingham wrote:
> The IPAModule::loadIPAModuleInfo() function includes a *data pointer
> which is used as a null-pointer comparison in the error path with a
> conditional statement of "if (ret || !data)".
> 
> The data variable is not initialised, and a single error path evaluates
> this as "if (true || uninitialised)".
> 
> Whilst this error path does not incorrectly utilise the uninitialised
> data, as the ret evaluates to true already, it does leave a statement
> which includes an uninitialised variable.
> 
> Help the static anlaysers by initialising the data variable when it is
> defined.

Have you found this with any static initialiser ? Does valgrind report
this issue ?

> Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> ---
>  src/libcamera/ipa_module.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
> index 003611625214..2ddb02c1562e 100644
> --- a/src/libcamera/ipa_module.cpp
> +++ b/src/libcamera/ipa_module.cpp
> @@ -291,7 +291,7 @@ int IPAModule::loadIPAModuleInfo()
>  		return ret;
>  	}
>  
> -	void *data;
> +	void *data = NULL;

This should be nullptr.

>  	size_t dataSize;
>  	void *map;
>  	size_t soSize;

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list