On Mon, 29 Nov 2010, Namhyung Kim wrote:
quoted text > Check return value of some functions and exit if unhandled error occurred.
>
> Signed-off-by: Namhyung Kim <namhyung@gmail.com>
> ---
> misc/mke2fs.c | 26 ++++++++++++++++++++++----
> 1 files changed, 22 insertions(+), 4 deletions(-)
>
> diff --git a/misc/mke2fs.c b/misc/mke2fs.c
> index b88decf..6e2092d 100644
> --- a/misc/mke2fs.c
> +++ b/misc/mke2fs.c
> @@ -1108,6 +1108,10 @@ static void PRS(int argc, char *argv[])
> if (oldpath)
> pathlen += strlen(oldpath);
> newpath = malloc(pathlen);
> + if (!newpath) {
> + fprintf(stderr, _("Couldn't allocate memory for new PATH.\n"));
> + exit(1);
> + }
> strcpy(newpath, PATH_SET);
>
> /* Update our PATH to include /sbin */
> @@ -1138,14 +1142,28 @@ static void PRS(int argc, char *argv[])
> profile_set_syntax_err_cb(syntax_err_report);
> retval = profile_init(config_fn, &profile);
> if (retval == ENOENT) {
> - profile_init(default_files, &profile);
> - profile_set_default(profile, mke2fs_default_profile);
> + retval = profile_init(default_files, &profile);
> + if (retval)
> + goto profile_error;
> + retval = profile_set_default(profile, mke2fs_default_profile);
> + if (retval)
> + goto profile_error;
> + } else {
Maybe use "else if (retval)" since profile_init(config_fn, &profile);
might exit successfully (return 0) ?
quoted text > +profile_error:
> + fprintf(stderr, _("Couldn't init profile successfully"
> + " (error: %ld).\n"), retval);
> + exit(1);
> }
>
> setbuf(stdout, NULL);
> setbuf(stderr, NULL);
> - add_error_table(&et_ext2_error_table);
> - add_error_table(&et_prof_error_table);
> + retval = add_error_table(&et_ext2_error_table);
> + if (!retval)
> + retval = add_error_table(&et_prof_error_table);
> + if (retval) {
> + fprintf(stderr, _("Unable to add error information.\n"));
> + exit(1);
> + }
> memset(&fs_param, 0, sizeof(struct ext2_super_block));
> fs_param.s_rev_level = 1; /* Create revision 1 filesystems now */
>
>
-Lukas
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to
majordomo@vger.kernel.org
More majordomo info at
http://vger.kernel.org/majordomo-info.html