[PATCH] tty: timbuart: Check for null res pointer

Jiasheng Jiang posted 1 patch 4 years, 6 months ago
drivers/tty/serial/timbuart.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
[PATCH] tty: timbuart: Check for null res pointer
Posted by Jiasheng Jiang 4 years, 6 months ago
The return value of platform_get_resource() needs to be checked.
To avoid use of error pointer in case that there is no suitable
resource.

Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")
Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
---
 drivers/tty/serial/timbuart.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
index 08941eabe7b1..262154d2f40f 100644
--- a/drivers/tty/serial/timbuart.c
+++ b/drivers/tty/serial/timbuart.c
@@ -312,9 +312,14 @@ static const char *timbuart_type(struct uart_port *port)
  */
 static void timbuart_release_port(struct uart_port *port)
 {
+	struct resource *res;
+	int size;
 	struct platform_device *pdev = to_platform_device(port->dev);
-	int size =
-		resource_size(platform_get_resource(pdev, IORESOURCE_MEM, 0));
+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+	if (!res)
+		size = 0;
+	else
+		size = resource_size(res);
 
 	if (port->flags & UPF_IOREMAP) {
 		iounmap(port->membase);
-- 
2.25.1

Re: [PATCH] tty: timbuart: Check for null res pointer
Posted by Jiri Slaby 4 years, 6 months ago
On 20. 12. 21, 9:21, Jiasheng Jiang wrote:
> The return value of platform_get_resource() needs to be checked.
> To avoid use of error pointer in case that there is no suitable
> resource.
> 
> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")

Barely.

> Signed-off-by: Jiasheng Jiang <jiasheng@iscas.ac.cn>
> ---
>   drivers/tty/serial/timbuart.c | 9 +++++++--
>   1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/tty/serial/timbuart.c b/drivers/tty/serial/timbuart.c
> index 08941eabe7b1..262154d2f40f 100644
> --- a/drivers/tty/serial/timbuart.c
> +++ b/drivers/tty/serial/timbuart.c
> @@ -312,9 +312,14 @@ static const char *timbuart_type(struct uart_port *port)
>    */
>   static void timbuart_release_port(struct uart_port *port)
>   {
> +	struct resource *res;
> +	int size;
>   	struct platform_device *pdev = to_platform_device(port->dev);
> -	int size =
> -		resource_size(platform_get_resource(pdev, IORESOURCE_MEM, 0));
> +	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
> +	if (!res)
> +		size = 0;

How can this happen and what happens when you pass zero size to 
release_mem_region?

> +	else
> +		size = resource_size(res);
>   
>   	if (port->flags & UPF_IOREMAP) {
>   		iounmap(port->membase);


-- 
js
suse labs
Re: [PATCH] tty: timbuart: Check for null res pointer
Posted by Greg KH 4 years, 6 months ago
On Mon, Dec 20, 2021 at 04:21:27PM +0800, Jiasheng Jiang wrote:
> The return value of platform_get_resource() needs to be checked.
> To avoid use of error pointer in case that there is no suitable
> resource.
> 
> Fixes: ab4382d27412 ("tty: move drivers/serial/ to drivers/tty/serial/")

No it does not.  I thought I said that already.

I am going to just add your emails to a "ignore filter" for a while.
Your changes are not correct, and when asked about them, you just send
another version of the patch, which is not how to have a conversation
about a review.

good luck,

greg k-h