diff options
author | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-13 15:45:16 +0000 |
---|---|---|
committer | landley <landley@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2006-03-13 15:45:16 +0000 |
commit | 12f32660d14e442e42ed667c106fec3a9db79856 (patch) | |
tree | e44405a7e5212758d20a9595cbb0a82609d4a347 /libbb | |
parent | e02e2f9792dc829c10ca3f18a1fab0294404ffea (diff) | |
download | busybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.tar.gz busybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.tar.bz2 busybox-w32-12f32660d14e442e42ed667c106fec3a9db79856.zip |
Patch from Denis Vlasenko to add xstat() and use it.
git-svn-id: svn://busybox.net/trunk/busybox@14530 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/Makefile.in | 2 | ||||
-rw-r--r-- | libbb/run_parts.c | 4 | ||||
-rw-r--r-- | libbb/xstat.c | 11 |
3 files changed, 13 insertions, 4 deletions
diff --git a/libbb/Makefile.in b/libbb/Makefile.in index b4ee3f501..159957aa4 100644 --- a/libbb/Makefile.in +++ b/libbb/Makefile.in | |||
@@ -26,7 +26,7 @@ LIBBB-y:= \ | |||
26 | restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \ | 26 | restricted_shell.c run_parts.c run_shell.c safe_read.c safe_write.c \ |
27 | safe_strncpy.c setup_environment.c sha1.c simplify_path.c \ | 27 | safe_strncpy.c setup_environment.c sha1.c simplify_path.c \ |
28 | trim.c u_signal_names.c vdprintf.c verror_msg.c \ | 28 | trim.c u_signal_names.c vdprintf.c verror_msg.c \ |
29 | vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c \ | 29 | vherror_msg.c vperror_msg.c wfopen.c xconnect.c xgetcwd.c xstat.c \ |
30 | xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \ | 30 | xgethostbyname.c xgethostbyname2.c xreadlink.c xregcomp.c xgetlarg.c \ |
31 | get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \ | 31 | get_terminal_width_height.c fclose_nonstdin.c fflush_stdout_and_exit.c \ |
32 | getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ | 32 | getopt_ulflags.c default_error_retval.c wfopen_input.c speed_table.c \ |
diff --git a/libbb/run_parts.c b/libbb/run_parts.c index 7f5fe459b..864460d0d 100644 --- a/libbb/run_parts.c +++ b/libbb/run_parts.c | |||
@@ -76,9 +76,7 @@ int run_parts(char **args, const unsigned char test_mode, char **env) | |||
76 | 76 | ||
77 | filename = concat_path_file(arg0, namelist[i]->d_name); | 77 | filename = concat_path_file(arg0, namelist[i]->d_name); |
78 | 78 | ||
79 | if (stat(filename, &st) < 0) { | 79 | xstat(filename, &st); |
80 | bb_perror_msg_and_die("failed to stat component %s", filename); | ||
81 | } | ||
82 | if (S_ISREG(st.st_mode) && !access(filename, X_OK)) { | 80 | if (S_ISREG(st.st_mode) && !access(filename, X_OK)) { |
83 | if (test_mode) { | 81 | if (test_mode) { |
84 | puts(filename); | 82 | puts(filename); |
diff --git a/libbb/xstat.c b/libbb/xstat.c new file mode 100644 index 000000000..ca6686403 --- /dev/null +++ b/libbb/xstat.c | |||
@@ -0,0 +1,11 @@ | |||
1 | /* | ||
2 | * xstat.c - a stat() which dies on failure with meaningful error message | ||
3 | */ | ||
4 | #include <unistd.h> | ||
5 | #include "libbb.h" | ||
6 | |||
7 | void xstat(const char *name, struct stat *stat_buf) | ||
8 | { | ||
9 | if (stat(name, stat_buf)) | ||
10 | bb_perror_msg_and_die("Can't stat '%s'", name); | ||
11 | } | ||