From 08137836a3ddce17aa5d383a02d177d35b3df266 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Fri, 4 Nov 2011 16:40:25 -0400 Subject: Amend #2038 fix The math was unsafe, thanks to Nalin for spotting it. --- util/ipa_krb5.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'util') diff --git a/util/ipa_krb5.c b/util/ipa_krb5.c index ba9d3cefc..d03680a6e 100644 --- a/util/ipa_krb5.c +++ b/util/ipa_krb5.c @@ -13,7 +13,7 @@ static krb5_error_code ipa_get_random_salt(krb5_context krbctx, krb5_data *salt) { krb5_error_code kerr; - int i; + int i, v; /* make random salt */ salt->length = KRB5P_SALT_SIZE; @@ -30,8 +30,10 @@ static krb5_error_code ipa_get_random_salt(krb5_context krbctx, * To avoid any compatibility issue, limits octects only to * the ASCII printable range, or 0x20 <= val <= 0x7E */ for (i = 0; i < salt->length; i++) { - salt->data[i] %= 0x5E; /* 7E - 20 */ - salt->data[i] += 0x20; /* add base */ + v = (unsigned char)salt->data[i]; + v %= 0x5E; /* 7E - 20 */ + v += 0x20; /* add base */ + salt->data[i] = v; } return 0; -- cgit