aboutsummaryrefslogtreecommitdiff
path: root/archival/rpm.c
diff options
context:
space:
mode:
authorRon Yorston <rmy@pobox.com>2021-01-14 13:28:49 +0000
committerRon Yorston <rmy@pobox.com>2021-01-14 13:28:49 +0000
commit89963b524d211e1aec12b72b3725be05ee95c8cf (patch)
tree48590aef62b7ee7686b7898256f29def8d9c50b9 /archival/rpm.c
parent9aa5a829070392c2ac6494d0c4e674c0c2bc7dab (diff)
parent2b7c1aa92c68524559a2067609d09309d5c09adc (diff)
downloadbusybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.tar.gz
busybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.tar.bz2
busybox-w32-89963b524d211e1aec12b72b3725be05ee95c8cf.zip
Merge branch 'busybox' into merge
Diffstat (limited to 'archival/rpm.c')
-rw-r--r--archival/rpm.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/archival/rpm.c b/archival/rpm.c
index 0d8f641b9..63d13d0e1 100644
--- a/archival/rpm.c
+++ b/archival/rpm.c
@@ -83,7 +83,9 @@ struct globals {
83 void *map; 83 void *map;
84 rpm_index *mytags; 84 rpm_index *mytags;
85 int tagcount; 85 int tagcount;
86 unsigned mapsize, pagesize; 86 unsigned mapsize;
87 IF_VARIABLE_ARCH_PAGESIZE(unsigned pagesize;)
88#define G_pagesize cached_pagesize(G.pagesize)
87} FIX_ALIASING; 89} FIX_ALIASING;
88#define G (*(struct globals*)bb_common_bufsiz1) 90#define G (*(struct globals*)bb_common_bufsiz1)
89#define INIT_G() do { setup_common_bufsiz(); } while (0) 91#define INIT_G() do { setup_common_bufsiz(); } while (0)
@@ -142,11 +144,11 @@ static int rpm_gettags(const char *filename)
142 144
143#if !ENABLE_PLATFORM_MINGW32 145#if !ENABLE_PLATFORM_MINGW32
144 /* Map the store */ 146 /* Map the store */
145 storepos = (storepos + G.pagesize) & -(int)G.pagesize; 147 storepos = (storepos + G_pagesize) & -(int)G_pagesize;
146 /* remember size for munmap */ 148 /* remember size for munmap */
147 G.mapsize = storepos; 149 G.mapsize = storepos;
148 /* some NOMMU systems prefer MAP_PRIVATE over MAP_SHARED */ 150 /* some NOMMU systems prefer MAP_PRIVATE over MAP_SHARED */
149 G.map = mmap(0, storepos, PROT_READ, MAP_PRIVATE, fd, 0); 151 G.map = mmap_read(fd, storepos);
150 if (G.map == MAP_FAILED) 152 if (G.map == MAP_FAILED)
151 bb_perror_msg_and_die("mmap '%s'", filename); 153 bb_perror_msg_and_die("mmap '%s'", filename);
152#else 154#else
@@ -368,7 +370,7 @@ int rpm_main(int argc, char **argv)
368 int opt, func = 0; 370 int opt, func = 0;
369 371
370 INIT_G(); 372 INIT_G();
371 G.pagesize = getpagesize(); 373 INIT_PAGESIZE(G.pagesize);
372 374
373 while ((opt = getopt(argc, argv, "iqpldc")) != -1) { 375 while ((opt = getopt(argc, argv, "iqpldc")) != -1) {
374 switch (opt) { 376 switch (opt) {
@@ -535,7 +537,7 @@ int rpm2cpio_main(int argc UNUSED_PARAM, char **argv)
535 int rpm_fd; 537 int rpm_fd;
536 538
537 INIT_G(); 539 INIT_G();
538 G.pagesize = getpagesize(); 540 INIT_PAGESIZE(G.pagesize);
539 541
540 rpm_fd = rpm_gettags(argv[1]); 542 rpm_fd = rpm_gettags(argv[1]);
541 543