summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-06-22 17:18:35 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2020-06-22 17:18:35 +0200
commitb98f393d88262dc7afc321ac48c228d3b67b0178 (patch)
treebb1ba09fe046b23af9623a92e0234208b7f9ad85 /src
parentbus-message: avoid dereferencing a NULL pointer (diff)
downloadsystemd-b98f393d88262dc7afc321ac48c228d3b67b0178.tar.xz
systemd-b98f393d88262dc7afc321ac48c228d3b67b0178.zip
bus-message: add macro for calculation of offset from the page
Diffstat (limited to 'src')
-rw-r--r--src/basic/memory-util.h1
-rw-r--r--src/libsystemd/sd-bus/bus-message.c2
2 files changed, 2 insertions, 1 deletions
diff --git a/src/basic/memory-util.h b/src/basic/memory-util.h
index a6a2ccdbc2..4f596cffb7 100644
--- a/src/basic/memory-util.h
+++ b/src/basic/memory-util.h
@@ -13,6 +13,7 @@
size_t page_size(void) _pure_;
#define PAGE_ALIGN(l) ALIGN_TO((l), page_size())
#define PAGE_ALIGN_DOWN(l) ((l) & ~(page_size() - 1))
+#define PAGE_OFFSET(l) ((l) & (page_size() - 1))
/* Normal memcpy requires src to be nonnull. We do nothing if n is 0. */
static inline void memcpy_safe(void *dst, const void *src, size_t n) {
diff --git a/src/libsystemd/sd-bus/bus-message.c b/src/libsystemd/sd-bus/bus-message.c
index 8a8fbde781..55e35cd902 100644
--- a/src/libsystemd/sd-bus/bus-message.c
+++ b/src/libsystemd/sd-bus/bus-message.c
@@ -3022,7 +3022,7 @@ int bus_body_part_map(struct bus_body_part *part) {
return 0;
}
- shift = part->memfd_offset - ((part->memfd_offset / page_size()) * page_size());
+ shift = PAGE_OFFSET(part->memfd_offset);
psz = PAGE_ALIGN(part->size + shift);
if (part->memfd >= 0)