← Commit list

9a202c9da

Rob Landley
Rob Landley
2006-06-13
SOURCE BUG Duration: 33s

Subject

Patch from Denis Vlasenko: unlzma was make files with mode 777. Tweak everything to do stat() and use xopen3().

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

archival/bunzip2.c+7 -2
@@ -41,16 +41,21 @@ int bunzip2_main(int argc, char **argv)
/* Check that the input is sane. */
if (isatty(src_fd) && (opt & BUNZIP2_OPT_FORCE) == 0) {
- bb_error_msg_and_die("compressed data not read from terminal. Use -f to force it.");
+ bb_error_msg_and_die("Compressed data not read from terminal. Use -f to force it.");
}
if (filename) {
+ struct stat stat_buf;
char *extension=filename+strlen(filename)-4;
if (strcmp(extension, ".bz2") != 0) {
bb_error_msg_and_die("Invalid extension");
}
+ /* TODO: xstat */
+ if (stat(filename, &stat_buf) < 0) {
+ bb_error_msg_and_die("Couldn't stat file %s", filename);
+ }
*extension=0;
- dst_fd = bb_xopen(filename, O_WRONLY | O_CREAT);
+ dst_fd = bb_xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode);
} else dst_fd = STDOUT_FILENO;
status = uncompressStream(src_fd, dst_fd);
if(filename) {
archival/gunzip.c+2 -5
@@ -137,11 +137,8 @@ int gunzip_main(int argc, char **argv)
bb_error_msg_and_die("Invalid extension");
}
- /* Open output file */
- dst_fd = bb_xopen(new_path, O_WRONLY | O_CREAT);
-
- /* Set permissions on the file */
- chmod(new_path, stat_buf.st_mode);
+ /* Open output file (with correct permissions) */
+ dst_fd = bb_xopen3(new_path, O_WRONLY | O_CREAT, stat_buf.st_mode);
/* If unzip succeeds remove the old file */
delete_path = old_path;
archival/unlzma.c+6 -1
@@ -41,13 +41,18 @@ int unlzma_main(int argc, char **argv)
filename = 0;
if (filename) {
+ struct stat stat_buf;
char *extension = filename + strlen(filename) - 5;
if (strcmp(extension, ".lzma") != 0) {
bb_error_msg_and_die("Invalid extension");
}
+ /* TODO: xstat? */
+ if (stat(filename, &stat_buf) < 0) {
+ bb_error_msg_and_die("Couldn't stat file %s", filename);
+ }
*extension = 0;
- dst_fd = bb_xopen(filename, O_WRONLY | O_CREAT);
+ dst_fd = bb_xopen3(filename, O_WRONLY | O_CREAT, stat_buf.st_mode);
} else
dst_fd = STDOUT_FILENO;
status = unlzma(src_fd, dst_fd);