* [PATCH v2] lib: libfile: Do not ignore errors in close()
@ 2015-08-14 20:31 Andrey Smirnov
2015-08-14 20:31 ` [PATCH] i2c-imx: Fix memory leak in i2c_fsl_probe() Andrey Smirnov
2015-08-19 14:24 ` [PATCH v2] lib: libfile: Do not ignore errors in close() Sascha Hauer
0 siblings, 2 replies; 3+ messages in thread
From: Andrey Smirnov @ 2015-08-14 20:31 UTC (permalink / raw)
To: barebox; +Cc: Andrey Smirnov
Some character devices may perform meaningful operations in their
implementation of close() -- a good example would be socfpga.c which
checks if the FPGA was programmed succesfully in it's close() method
-- so ignoring return value of this call may cause false positives in
checking exit status for success.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
lib/libfile.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/lib/libfile.c b/lib/libfile.c
index ba03700..a27460c 100644
--- a/lib/libfile.c
+++ b/lib/libfile.c
@@ -262,7 +262,7 @@ int copy_file(const char *src, const char *dst, int verbose)
char *rw_buf = NULL;
int srcfd = 0, dstfd = 0;
int r, w;
- int ret = 1;
+ int ret = 1, err1 = 0;
void *buf;
int total = 0;
struct stat statbuf;
@@ -326,9 +326,9 @@ out:
if (srcfd > 0)
close(srcfd);
if (dstfd > 0)
- close(dstfd);
+ err1 = close(dstfd);
- return ret;
+ return ret ?: err1;
}
EXPORT_SYMBOL(copy_file);
--
2.1.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH] i2c-imx: Fix memory leak in i2c_fsl_probe()
2015-08-14 20:31 [PATCH v2] lib: libfile: Do not ignore errors in close() Andrey Smirnov
@ 2015-08-14 20:31 ` Andrey Smirnov
2015-08-19 14:24 ` [PATCH v2] lib: libfile: Do not ignore errors in close() Sascha Hauer
1 sibling, 0 replies; 3+ messages in thread
From: Andrey Smirnov @ 2015-08-14 20:31 UTC (permalink / raw)
To: barebox; +Cc: Andrey Smirnov
All points of failure in the code of i2c_fsl_probe() happen after the
allocation of i2c_fsl, so all of them have to perform necessary
cleanup setups in case of failure.
Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
---
drivers/i2c/busses/i2c-imx.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index 714e83c..4cd03e1 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -539,8 +539,10 @@ static int __init i2c_fsl_probe(struct device_d *pdev)
#ifdef CONFIG_COMMON_CLK
i2c_fsl->clk = clk_get(pdev, NULL);
- if (IS_ERR(i2c_fsl->clk))
- return PTR_ERR(i2c_fsl->clk);
+ if (IS_ERR(i2c_fsl->clk)) {
+ ret = PTR_ERR(i2c_fsl->clk);
+ goto fail;
+ }
#endif
/* Setup i2c_fsl driver structure */
i2c_fsl->adapter.master_xfer = i2c_fsl_xfer;
@@ -548,8 +550,10 @@ static int __init i2c_fsl_probe(struct device_d *pdev)
i2c_fsl->adapter.dev.parent = pdev;
i2c_fsl->adapter.dev.device_node = pdev->device_node;
i2c_fsl->base = dev_request_mem_region(pdev, 0);
- if (IS_ERR(i2c_fsl->base))
- return PTR_ERR(i2c_fsl->base);
+ if (IS_ERR(i2c_fsl->base)) {
+ ret = PTR_ERR(i2c_fsl->base);
+ goto fail;
+ }
i2c_fsl->dfsrr = -1;
--
2.1.4
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH v2] lib: libfile: Do not ignore errors in close()
2015-08-14 20:31 [PATCH v2] lib: libfile: Do not ignore errors in close() Andrey Smirnov
2015-08-14 20:31 ` [PATCH] i2c-imx: Fix memory leak in i2c_fsl_probe() Andrey Smirnov
@ 2015-08-19 14:24 ` Sascha Hauer
1 sibling, 0 replies; 3+ messages in thread
From: Sascha Hauer @ 2015-08-19 14:24 UTC (permalink / raw)
To: Andrey Smirnov; +Cc: barebox
On Fri, Aug 14, 2015 at 01:31:58PM -0700, Andrey Smirnov wrote:
> Some character devices may perform meaningful operations in their
> implementation of close() -- a good example would be socfpga.c which
> checks if the FPGA was programmed succesfully in it's close() method
> -- so ignoring return value of this call may cause false positives in
> checking exit status for success.
>
> Signed-off-by: Andrey Smirnov <andrew.smirnov@gmail.com>
> ---
> lib/libfile.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
Applied, thanks
Sascha
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2015-08-19 14:24 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-08-14 20:31 [PATCH v2] lib: libfile: Do not ignore errors in close() Andrey Smirnov
2015-08-14 20:31 ` [PATCH] i2c-imx: Fix memory leak in i2c_fsl_probe() Andrey Smirnov
2015-08-19 14:24 ` [PATCH v2] lib: libfile: Do not ignore errors in close() Sascha Hauer
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox