From c5a88ed553c3cb41596b93134f2979dc82937bd8 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 20 May 2009 08:54:41 +0100 Subject: [PATCH] [settings] Fix erroneous bit-masking in fetch_uintz_setting() --- src/core/settings.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/core/settings.c b/src/core/settings.c index 3a58e39b..43b463a5 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -544,7 +544,8 @@ int fetch_uint_setting ( struct settings *settings, struct setting *setting, return len; /* Mask off sign-extended bits */ - *value = ( svalue & ( -1UL >> ( sizeof ( long ) - len ) ) ); + assert ( len <= ( int ) sizeof ( long ) ); + *value = ( svalue & ( -1UL >> ( 8 * ( sizeof ( long ) - len ) ) ) ); return len; }