From 60ff7da33b9941038f752d35eb01f1b557023489 Mon Sep 17 00:00:00 2001 From: "Eric S. Raymond" Date: Tue, 19 Oct 2010 03:44:34 -0400 Subject: [PATCH] Exit with message on chdir() failure. --- main.c | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/main.c b/main.c index 15869de..d1bb91f 100644 --- a/main.c +++ b/main.c @@ -528,7 +528,11 @@ main(int argc, char *argv[]) { if (dir) { - (void)chdir(dir); + if (chdir(dir) != 0) + { + fprintf(stderr, "comparator: cd failed!\n"); + exit(1); + } } write_scf(argv[optind], redirect(outfile)); exit(0); @@ -563,11 +567,20 @@ main(int argc, char *argv[]) if (dir) { olddir = getcwd(NULL, PATH_MAX); - (void)chdir(dir); + if (chdir(dir) != 0) + { + fprintf(stderr, "comparator: cd failed!\n"); + exit(1); + } } write_scf(source, ofp); - if (dir) - (void)chdir(olddir); + if (dir) { + if (chdir(dir) != 0) + { + fprintf(stderr, "comparator: cd failed!\n"); + exit(1); + } + } fclose(ofp); } else @@ -575,12 +588,22 @@ main(int argc, char *argv[]) if (dir) { olddir = getcwd(NULL, PATH_MAX); - (void)chdir(dir); + if (chdir(dir) != 0) + { + fprintf(stderr, "comparator: cd failed!\n"); + exit(1); + } } init_scf(source, scf, 0); scf->totallines = merge_tree(source); if (dir) - (void)chdir(olddir); + { + if (chdir(dir) != 0) + { + fprintf(stderr, "comparator: cd failed!\n"); + exit(1); + } + } } } -- 2.43.0