7
7
static mp_word s_pow (mp_word base , mp_word exponent )
8
8
{
9
9
mp_word result = 1uLL ;
10
- while (exponent ) {
11
- if ((exponent & 0x1 ) == 1 ) {
10
+ while (exponent != 0u ) {
11
+ if ((exponent & 1u ) == 1u ) {
12
12
result *= base ;
13
13
}
14
14
exponent >>= 1 ;
@@ -85,13 +85,17 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
85
85
return MP_VAL ;
86
86
}
87
87
88
- if (base < 2 ) {
88
+ if (base < 2u ) {
89
89
return MP_VAL ;
90
- } else if (base == 2 ) {
90
+ }
91
+ if (base == 2u ) {
91
92
cmp = mp_count_bits (a ) - 1 ;
92
- mp_set_int (c , (unsigned long )cmp );
93
+ if ((e = mp_set_int (c , (unsigned long )cmp )) != MP_OKAY ) {
94
+ goto LTM_ERR ;
95
+ }
93
96
return err ;
94
- } else if (a -> used == 1 ) {
97
+ }
98
+ if (a -> used == 1 ) {
95
99
tmp = s_digit_ilogb (base , a -> dp [0 ]);
96
100
mp_set (c , tmp );
97
101
return err ;
@@ -114,9 +118,9 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
114
118
return err ;
115
119
}
116
120
117
- low = 0uL ;
121
+ low = 0u ;
118
122
mp_set (& bracket_low , 1uL );
119
- high = 1uL ;
123
+ high = 1u ;
120
124
121
125
mp_set (& bracket_high , base );
122
126
@@ -138,14 +142,14 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
138
142
}
139
143
mp_set (& bi_base , base );
140
144
141
- while ((high - low ) > 1 ) {
145
+ while ((high - low ) > 1u ) {
142
146
mid = (high + low ) >> 1 ;
143
147
/* Difference can be larger then the type behind mp_digit can hold */
144
148
if ((mid - low ) > (unsigned int )(MP_MASK )) {
145
149
err = MP_VAL ;
146
150
goto LBL_ERR ;
147
151
}
148
- if ((err = mp_expt_d (& bi_base , (mid - low ), & t )) != MP_OKAY ) {
152
+ if ((err = mp_expt_d (& bi_base , (mp_digit )( mid - low ), & t )) != MP_OKAY ) {
149
153
goto LBL_ERR ;
150
154
}
151
155
if ((err = mp_mul (& bracket_low , & t , & bracket_mid )) != MP_OKAY ) {
@@ -161,15 +165,21 @@ int mp_ilogb(mp_int *a, mp_digit base, mp_int *c)
161
165
mp_exch (& bracket_mid , & bracket_low );
162
166
}
163
167
if (cmp == MP_EQ ) {
164
- mp_set_int (c , (unsigned long )mid );
168
+ if ((e = mp_set_int (c , (unsigned long )mid )) != MP_OKAY ) {
169
+ goto LTM_ERR ;
170
+ }
165
171
goto LBL_END ;
166
172
}
167
173
}
168
174
169
175
if (mp_cmp (& bracket_high , a ) == MP_EQ ) {
170
- mp_set_int (c , (unsigned long )high );
176
+ if ((e = mp_set_int (c , (unsigned long )high )) != MP_OKAY ) {
177
+ goto LTM_ERR ;
178
+ }
171
179
} else {
172
- mp_set_int (c , (unsigned long )low );
180
+ if ((e = mp_set_int (c , (unsigned long )low )) != MP_OKAY ) {
181
+ goto LTM_ERR ;
182
+ }
173
183
}
174
184
175
185
LBL_END :
0 commit comments