From: Sascha Hauer <s.hauer@pengutronix.de>
To: barebox@lists.infradead.org
Subject: [PATCH 16/16] fs mount: fix error handling
Date: Fri, 8 Apr 2011 16:37:02 +0200 [thread overview]
Message-ID: <1302273422-6987-17-git-send-email-s.hauer@pengutronix.de> (raw)
In-Reply-To: <1302273422-6987-1-git-send-email-s.hauer@pengutronix.de>
If we register a device we have to unregister it later when
the driver did not accept the device. Also, do not forget to
free the backingstore string.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
---
fs/fs.c | 19 +++++++++++++------
1 files changed, 13 insertions(+), 6 deletions(-)
diff --git a/fs/fs.c b/fs/fs.c
index 8f43481..e71d5a2 100644
--- a/fs/fs.c
+++ b/fs/fs.c
@@ -780,8 +780,7 @@ int mount(const char *device, const char *fsname, const char *_path)
if (!device) {
printf("need a device for driver %s\n", fsname);
errno = -ENODEV;
- free(fsdev);
- goto out;
+ goto out1;
}
}
safe_strncpy(fsdev->dev.name, fsname, MAX_DRIVER_NAME);
@@ -789,16 +788,14 @@ int mount(const char *device, const char *fsname, const char *_path)
fsdev->dev.id = get_free_deviceid(fsdev->dev.name);
if ((ret = register_device(&fsdev->dev))) {
- free(fsdev);
errno = ret;
- goto out;
+ goto out1;
}
if (!fsdev->dev.driver) {
/* driver didn't accept the device. Bail out */
- free(fsdev);
errno = -EINVAL;
- goto out;
+ goto out2;
}
if (parent_device)
@@ -822,6 +819,16 @@ int mount(const char *device, const char *fsname, const char *_path)
e->next = entry;
}
errno = 0;
+
+ free(path);
+ return 0;
+
+out2:
+ unregister_device(&fsdev->dev);
+out1:
+ if (fsdev->backingstore)
+ free(fsdev->backingstore);
+ free(fsdev);
out:
free(path);
return errno;
--
1.7.2.3
_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox
prev parent reply other threads:[~2011-04-08 14:37 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-08 14:36 various cleanup patches Sascha Hauer
2011-04-08 14:36 ` [PATCH 01/16] fs: remove unused field 'type' from struct fs_driver_d Sascha Hauer
2011-04-08 14:36 ` [PATCH 02/16] mci: make it compile without info support Sascha Hauer
2011-04-08 14:36 ` [PATCH 03/16] ubi: do not use filep Sascha Hauer
2011-04-08 14:36 ` [PATCH 04/16] devfs: remove unused struct filep* argument from open/close Sascha Hauer
2011-04-08 14:36 ` [PATCH 05/16] fs: implement flush function Sascha Hauer
2011-04-08 14:36 ` [PATCH 06/16] devfs: factor out core devfs functionality Sascha Hauer
2011-04-08 14:36 ` [PATCH 07/16] nand: remove unused header file Sascha Hauer
2011-04-08 14:36 ` [PATCH 08/16] startup: we can only mount root and devfs when compiled in Sascha Hauer
2011-04-08 14:36 ` [PATCH 09/16] nand: remove unused nand_util file Sascha Hauer
2011-04-08 14:36 ` [PATCH 10/16] move version_string to seperate file Sascha Hauer
2011-04-08 14:36 ` [PATCH 11/16] fs: use safe_strncpy instead of sprintf Sascha Hauer
2011-04-08 14:36 ` [PATCH 12/16] script: update git ignore file Sascha Hauer
2011-04-08 14:36 ` [PATCH 13/16] serial 16550: use xzalloc Sascha Hauer
2011-04-08 14:37 ` [PATCH 14/16] ARM: compile in image size and magic into barebox image Sascha Hauer
2011-04-10 4:33 ` Marc Reilly
2011-04-11 7:41 ` Sascha Hauer
2011-04-11 7:46 ` Robert Schwebel
2011-04-11 8:42 ` Marc Reilly
2011-04-08 14:37 ` [PATCH 15/16] commands: seperate usb command from usb core Sascha Hauer
2011-04-08 14:37 ` Sascha Hauer [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1302273422-6987-17-git-send-email-s.hauer@pengutronix.de \
--to=s.hauer@pengutronix.de \
--cc=barebox@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox