Просмотр исходного кода

[settings] Fix erroneous bit-masking in fetch_uintz_setting()

tags/v0.9.8
Michael Brown 15 лет назад
Родитель
Сommit
c5a88ed553
1 измененных файлов: 2 добавлений и 1 удалений
  1. 2
    1
      src/core/settings.c

+ 2
- 1
src/core/settings.c Просмотреть файл

@@ -544,7 +544,8 @@ int fetch_uint_setting ( struct settings *settings, struct setting *setting,
544 544
 		return len;
545 545
 
546 546
 	/* Mask off sign-extended bits */
547
-	*value = ( svalue & ( -1UL >> ( sizeof ( long ) - len ) ) );
547
+	assert ( len <= ( int ) sizeof ( long ) );
548
+	*value = ( svalue & ( -1UL >> ( 8 * ( sizeof ( long ) - len ) ) ) );
548 549
 
549 550
 	return len;
550 551
 }

Загрузка…
Отмена
Сохранить