mirror of https://github.com/mirror/busybox.git
apply five post-1.9.1 patches
parent
d4394120f7
commit
77d390dc70
|
@ -71,12 +71,6 @@ static char *extract_filename(char *line, int patch_level)
|
|||
return xstrdup(filename_start_ptr);
|
||||
}
|
||||
|
||||
static int file_doesnt_exist(const char *filename)
|
||||
{
|
||||
struct stat statbuf;
|
||||
return stat(filename, &statbuf);
|
||||
}
|
||||
|
||||
int patch_main(int argc, char **argv) MAIN_EXTERNALLY_VISIBLE;
|
||||
int patch_main(int argc, char **argv)
|
||||
{
|
||||
|
@ -84,7 +78,8 @@ int patch_main(int argc, char **argv)
|
|||
char *patch_line;
|
||||
int ret;
|
||||
FILE *patch_file = NULL;
|
||||
|
||||
struct stat saved_stat;
|
||||
|
||||
{
|
||||
char *p, *i;
|
||||
ret = getopt32(argv, "p:i:", &p, &i);
|
||||
|
@ -134,8 +129,9 @@ int patch_main(int argc, char **argv)
|
|||
}
|
||||
new_filename = extract_filename(patch_line, patch_level);
|
||||
free(patch_line);
|
||||
|
||||
if (file_doesnt_exist(new_filename)) {
|
||||
|
||||
/* Get access rights from the file to be patched, -1 file does not exist */
|
||||
if (stat(new_filename, &saved_stat)) {
|
||||
char *line_ptr;
|
||||
/* Create leading directories */
|
||||
line_ptr = strrchr(new_filename, '/');
|
||||
|
@ -155,9 +151,10 @@ int patch_main(int argc, char **argv)
|
|||
backup_filename);
|
||||
}
|
||||
dst_stream = xfopen(new_filename, "w");
|
||||
fchmod(fileno(dst_stream), saved_stat.st_mode);
|
||||
}
|
||||
|
||||
if ((backup_filename == NULL) || file_doesnt_exist(original_filename)) {
|
||||
if ((backup_filename == NULL) || stat(original_filename, &saved_stat)) {
|
||||
src_stream = NULL;
|
||||
} else {
|
||||
if (strcmp(original_filename, new_filename) == 0) {
|
||||
|
|
18
init/init.c
18
init/init.c
|
@ -225,8 +225,22 @@ static void console_init(void)
|
|||
}
|
||||
messageD(L_LOG, "console='%s'", s);
|
||||
} else {
|
||||
/* Make sure fd 0,1,2 are not closed */
|
||||
bb_sanitize_stdio();
|
||||
/* Make sure fd 0,1,2 are not closed
|
||||
* (so that they won't be used by future opens) */
|
||||
|
||||
/* bb_sanitize_stdio(); - WRONG.
|
||||
* Fail if "/dev/null" doesnt exist, and for init
|
||||
* this is a real possibility! Open code it instead. */
|
||||
|
||||
int fd = open(bb_dev_null, O_RDWR);
|
||||
if (fd < 0) {
|
||||
/* Give me _ANY_ open descriptor! */
|
||||
fd = xopen("/", O_RDONLY); /* we don't believe this can fail */
|
||||
}
|
||||
while ((unsigned)fd < 2)
|
||||
fd = dup(fd);
|
||||
if (fd > 2)
|
||||
close (fd);
|
||||
}
|
||||
|
||||
s = getenv("TERM");
|
||||
|
|
|
@ -246,7 +246,15 @@ static void input_backward(unsigned num)
|
|||
if (cmdedit_x >= num) {
|
||||
cmdedit_x -= num;
|
||||
if (num <= 4) {
|
||||
printf("\b\b\b\b" + (4-num));
|
||||
/* This is longer by 5 bytes on x86.
|
||||
* Also gets mysteriously
|
||||
* miscompiled for some ARM users.
|
||||
* printf(("\b\b\b\b" + 4) - num);
|
||||
* return;
|
||||
*/
|
||||
do {
|
||||
bb_putchar('\b');
|
||||
} while (--num);
|
||||
return;
|
||||
}
|
||||
printf("\033[%uD", num);
|
||||
|
|
|
@ -1950,7 +1950,7 @@ static void handle_incoming_and_exit(const len_and_sockaddr *fromAddr)
|
|||
if ((STRNCASECMP(iobuf, "Content-length:") == 0)) {
|
||||
/* extra read only for POST */
|
||||
if (prequest != request_GET) {
|
||||
tptr = iobuf + sizeof("Content-length:") - 1;
|
||||
tptr = tptr = skip_whitespace(iobuf + sizeof("Content-length:") - 1);
|
||||
if (!tptr[0])
|
||||
send_headers_and_exit(HTTP_BAD_REQUEST);
|
||||
errno = 0;
|
||||
|
|
|
@ -167,7 +167,7 @@ static int read_opt(const char *const_line, void *arg)
|
|||
if (!opt)
|
||||
return 0;
|
||||
|
||||
idx = index_in_strings(opt, dhcp_option_strings); /* NB: was strcasecmp! */
|
||||
idx = index_in_strings(dhcp_option_strings, opt); /* NB: was strcasecmp! */
|
||||
if (idx < 0)
|
||||
return 0;
|
||||
option = &dhcp_options[idx];
|
||||
|
|
Loading…
Reference in New Issue