X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=src%2Fsecurity.c;h=2e83d0e966199aa44b3a14606ee9e38b781cb9c9;hp=b30ffc6522247421551f0d4e260ec1278c54dded;hb=b6fa6d370a09247a608e6a46a3d9e761d10a8a39;hpb=c6127ff151b2963c5b90e4018f08f53051a97dfd;ds=sidebyside diff --git a/src/security.c b/src/security.c index b30ffc65..2e83d0e9 100644 --- a/src/security.c +++ b/src/security.c @@ -168,8 +168,10 @@ u8 *write_security_data(const struct wim_security_data *sd, u8 *p) DEBUG("Writing security data (total_length = %"PRIu32", num_entries " "= %"PRIu32")", sd->total_length, sd->num_entries); + u32 aligned_length = (sd->total_length + 7) & ~7; + u8 *orig_p = p; - p = put_u32(p, sd->total_length); + p = put_u32(p, aligned_length); p = put_u32(p, sd->num_entries); for (u32 i = 0; i < sd->num_entries; i++) @@ -179,6 +181,7 @@ u8 *write_security_data(const struct wim_security_data *sd, u8 *p) p = put_bytes(p, sd->sizes[i], sd->descriptors[i]); wimlib_assert(p - orig_p == sd->total_length); + p = put_zeroes(p, aligned_length - sd->total_length); DEBUG("Successfully wrote security data."); return p;