From 0ec65af730f7c6307a5c8e7330a31ae2b785d95d Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Thu, 1 Aug 2019 15:24:37 +0200 Subject: Fix xattr OOL position We need to get the position _before_ writing the header, otherwise the reader has no way to know the length of the value. Signed-off-by: David Oberhollenzer --- lib/sqfs/write_xattr.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/sqfs/write_xattr.c b/lib/sqfs/write_xattr.c index 05f2775..ce606e3 100644 --- a/lib/sqfs/write_xattr.c +++ b/lib/sqfs/write_xattr.c @@ -84,14 +84,14 @@ static int write_value(meta_writer_t *mw, const char *value, uint32_t offset; uint64_t block; + meta_writer_get_position(mw, &block, &offset); + *value_ref_out = (block << 16) | (offset & 0xFFFF); + vent.size = htole32(strlen(value)); if (meta_writer_append(mw, &vent, sizeof(vent))) return -1; - meta_writer_get_position(mw, &block, &offset); - *value_ref_out = (block << 16) | (offset & 0xFFFF); - if (meta_writer_append(mw, value, strlen(value))) return -1; -- cgit v1.2.3