apply five post-1.9.1 patches

1_9_stable
Denis Vlasenko 2008-03-21 09:44:02 +00:00
parent d4394120f7
commit 77d390dc70
5 changed files with 34 additions and 15 deletions

View File

@ -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) {

View File

@ -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");

View File

@ -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);

View File

@ -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;

View File

@ -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];