[PATCH] entry.c: Use strerror() to print error info when possible

Subsystems: the rest

DORMANTno replies

3 messages, 2 authors, 2016-06-15 · open the first message on its own page

[PATCH] entry.c: Use strerror() to print error info when possible

From: Luiz Fernando N. Capitulino <hidden>
Date: 2016-06-15 22:43:04

Signed-off-by: Luiz Fernando N. Capitulino <redacted>
---
 entry.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/entry.c b/entry.c
index d72f811..c36c09d 100644
--- a/entry.c
+++ b/entry.c
@@ -19,7 +19,8 @@ static void create_directories(const char *path, struct checkout *state)
 				if (!stat(buf, &st) && S_ISDIR(st.st_mode))
 					continue; /* ok */
 			}
-			die("cannot create directory at %s", buf);
+			die("cannot create directory at %s (%s)", buf,
+			    strerror(errno));
 		}
 	}
 	free(buf);
@@ -33,7 +34,7 @@ static void remove_subtree(const char *path)
 	char *name;
 	
 	if (!dir)
-		die("cannot opendir %s", path);
+		die("cannot opendir %s (%s)", path, strerror(errno));
 	strcpy(pathbuf, path);
 	name = pathbuf + strlen(path);
 	*name++ = '/';
@@ -45,15 +46,15 @@ static void remove_subtree(const char *path)
 			continue;
 		strcpy(name, de->d_name);
 		if (lstat(pathbuf, &st))
-			die("cannot lstat %s", pathbuf);
+			die("cannot lstat %s (%s)", pathbuf, strerror(errno));
 		if (S_ISDIR(st.st_mode))
 			remove_subtree(pathbuf);
 		else if (unlink(pathbuf))
-			die("cannot unlink %s", pathbuf);
+			die("cannot unlink %s (%s)", pathbuf, strerror(errno));
 	}
 	closedir(dir);
 	if (rmdir(path))
-		die("cannot rmdir %s", path);
+		die("cannot rmdir %s (%s)", path, strerror(errno));
 }
 
 static int create_file(const char *path, unsigned int mode)
-- 
1.5.1.1.85.geed2-dirty

Re: [PATCH] entry.c: Use strerror() to print error info when possible

From: Alex Riesen <hidden>
Date: 2016-06-15 22:43:04

Luiz Fernando N. Capitulino, Sun, Apr 15, 2007 23:56:19 +0200:
quoted hunk
Signed-off-by: Luiz Fernando N. Capitulino <redacted>
---
 entry.c |   11 ++++++-----
 1 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/entry.c b/entry.c
index d72f811..c36c09d 100644
--- a/entry.c
+++ b/entry.c
@@ -19,7 +19,8 @@ static void create_directories(const char *path, struct checkout *state)
 				if (!stat(buf, &st) && S_ISDIR(st.st_mode))
 					continue; /* ok */
 			}
-			die("cannot create directory at %s", buf);
+			die("cannot create directory at %s (%s)", buf,
+			    strerror(errno));
This errno is not very useful, as it may come from the stat above, and
you provided no way to figure out what was the syscall (the mkdir or
the stat) which failed. Also, the errnos of unlink or mkdir just above
the stat are just lost.

It is not worse than before, but not very much better either, and
probably confusing. I suggest you just leave this one as it is.

Re: [PATCH] entry.c: Use strerror() to print error info when possible

From: Luiz Fernando N. Capitulino <hidden>
Date: 2016-06-15 22:43:04

Em Mon, 16 Apr 2007 01:00:20 +0200
Alex Riesen [off-list ref] escreveu:

| Luiz Fernando N. Capitulino, Sun, Apr 15, 2007 23:56:19 +0200:
| > 
| > Signed-off-by: Luiz Fernando N. Capitulino [off-list ref]
| > ---
| >  entry.c |   11 ++++++-----
| >  1 files changed, 6 insertions(+), 5 deletions(-)
| > 
| > diff --git a/entry.c b/entry.c
| > index d72f811..c36c09d 100644
| > --- a/entry.c
| > +++ b/entry.c
| > @@ -19,7 +19,8 @@ static void create_directories(const char *path, struct checkout *state)
| >  				if (!stat(buf, &st) && S_ISDIR(st.st_mode))
| >  					continue; /* ok */
| >  			}
| > -			die("cannot create directory at %s", buf);
| > +			die("cannot create directory at %s (%s)", buf,
| > +			    strerror(errno));
| 
| This errno is not very useful, as it may come from the stat above, and
| you provided no way to figure out what was the syscall (the mkdir or
| the stat) which failed. Also, the errnos of unlink or mkdir just above
| the stat are just lost.
| 
| It is not worse than before, but not very much better either, and
| probably confusing. I suggest you just leave this one as it is.

 Will do, thanks for reviewing Alex.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help