From: Denys Vlasenko Date: Sat, 3 Jan 2015 16:53:49 +0000 (+0100) Subject: libpwdgrp: use a better estimate of max struct size X-Git-Tag: 1_24_0~245 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=5e62a3d016633d4d97906f0f73298dc8e8b6a42b;p=oweals%2Fbusybox.git libpwdgrp: use a better estimate of max struct size Previous code's trick with bitwise OR was giving this on 32-bit x86: sizeof(struct passwd):28 sizeof(struct group):16 sizeof(struct spwd):36 sizeof(struct_result):60 Signed-off-by: Denys Vlasenko --- diff --git a/libpwdgrp/pwd_grp.c b/libpwdgrp/pwd_grp.c index 539d2b01f..f3fcec859 100644 --- a/libpwdgrp/pwd_grp.c +++ b/libpwdgrp/pwd_grp.c @@ -45,11 +45,10 @@ struct passdb { uint8_t numfields; FILE *fp; char *malloced; - char struct_result[0 - | sizeof(struct passwd) - | sizeof(struct group) - IF_USE_BB_SHADOW( | sizeof(struct spwd) ) - /* bitwise OR above is poor man's max(a,b,c) */ + char struct_result[ + /* Should be max(sizeof passwd,group,spwd), but this will do: */ + IF_NOT_USE_BB_SHADOW(sizeof(struct passwd)) + IF_USE_BB_SHADOW(sizeof(struct spwd)) ]; };