← Commit list

bcda0042e

Denys Vlasenko
Denys Vlasenko
2010-03-19
FAILED Duration: 37s

Subject

libbb/copyfd.c: don't mmap a largish buffer if we only want to copy a few kb

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 →

libbb/copyfd.c+3 -0
@@ -22,6 +22,8 @@ static off_t bb_full_fd_action(int src_fd, int dst_fd, off_t size)
char *buffer;
int buffer_size;
+ if (size > 0 && size <= 4 * 1024)
+ goto use_small_buf;
/* We want page-aligned buffer, just in case kernel is clever
* and can do page-aligned io more efficiently */
buffer = mmap(NULL, CONFIG_FEATURE_COPYBUF_KB * 1024,
@@ -30,6 +32,7 @@ static off_t bb_full_fd_action(int src_fd, int dst_fd, off_t size)
/* ignored: */ -1, 0);
buffer_size = CONFIG_FEATURE_COPYBUF_KB * 1024;
if (buffer == MAP_FAILED) {
+ use_small_buf:
buffer = alloca(4 * 1024);
buffer_size = 4 * 1024;
}