mirror of
https://github.com/sheumann/hush.git
synced 2024-12-23 05:29:58 +00:00
Batch from Bastian Blank to fix debian bug #216435;
When linking a non existing file busybox ln will report the target missind and not the source:
This commit is contained in:
parent
7f48a959f5
commit
cfc0ad4260
@ -43,7 +43,8 @@ extern int ln_main(int argc, char **argv)
|
|||||||
int flag;
|
int flag;
|
||||||
char *last;
|
char *last;
|
||||||
char *src_name;
|
char *src_name;
|
||||||
const char *src;
|
char *src;
|
||||||
|
struct stat statbuf;
|
||||||
int (*link_func)(const char *, const char *);
|
int (*link_func)(const char *, const char *);
|
||||||
|
|
||||||
flag = bb_getopt_ulflags(argc, argv, "sfn");
|
flag = bb_getopt_ulflags(argc, argv, "sfn");
|
||||||
@ -61,7 +62,7 @@ extern int ln_main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
src_name = 0;
|
src_name = NULL;
|
||||||
src = last;
|
src = last;
|
||||||
|
|
||||||
if (is_directory(src,
|
if (is_directory(src,
|
||||||
@ -70,7 +71,14 @@ extern int ln_main(int argc, char **argv)
|
|||||||
src_name = bb_xstrdup(*argv);
|
src_name = bb_xstrdup(*argv);
|
||||||
src = concat_path_file(src, bb_get_last_path_component(src_name));
|
src = concat_path_file(src, bb_get_last_path_component(src_name));
|
||||||
free(src_name);
|
free(src_name);
|
||||||
src_name = (char *)src;
|
src_name = src;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (stat(*argv, &statbuf)) {
|
||||||
|
bb_perror_msg(*argv);
|
||||||
|
status = EXIT_FAILURE;
|
||||||
|
free(src_name);
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flag & LN_FORCE) {
|
if (flag & LN_FORCE) {
|
||||||
@ -84,7 +92,7 @@ extern int ln_main(int argc, char **argv)
|
|||||||
|
|
||||||
if (link_func(*argv, src) != 0) {
|
if (link_func(*argv, src) != 0) {
|
||||||
bb_perror_msg(src);
|
bb_perror_msg(src);
|
||||||
status = EXIT_FAILURE;;
|
status = EXIT_FAILURE;
|
||||||
}
|
}
|
||||||
|
|
||||||
free(src_name);
|
free(src_name);
|
||||||
|
Loading…
Reference in New Issue
Block a user