@@ -186,7 +186,7 @@ static __always_inline bool wc_AesGcm_crypt_sg_inplace(struct scatterlist *src,
186186 struct sg_mapping_iter miter ;
187187 int miter_needs_stop = 0 ;
188188 unsigned int flags ;
189- int sl ;
189+ ssize_t sl ;
190190 Aes * aes = NULL ;
191191 byte full_nonce [AES_IV_SIZE ];
192192
@@ -249,8 +249,8 @@ static __always_inline bool wc_AesGcm_crypt_sg_inplace(struct scatterlist *src,
249249 sg_miter_start (& miter , src , sg_nents (src ), flags );
250250 miter_needs_stop = 1 ;
251251
252- for (sl = src_len ; sl > 0 && sg_miter_next (& miter ); sl -= miter .length ) {
253- size_t length = min_t (size_t , sl , miter .length );
252+ for (sl = ( ssize_t ) src_len ; sl > 0 && sg_miter_next (& miter ); sl -= miter .length ) {
253+ size_t length = min_t (size_t , sl , ( ssize_t ) miter .length );
254254
255255 if (isDecrypt )
256256 ret = wc_AesGcmDecryptUpdate (aes , miter .addr , miter .addr ,
@@ -271,9 +271,9 @@ static __always_inline bool wc_AesGcm_crypt_sg_inplace(struct scatterlist *src,
271271 */
272272 if (sl <= - WC_AES_BLOCK_SIZE ) {
273273 if (isDecrypt )
274- ret = wc_AesGcmDecryptFinal (aes , miter .addr + miter .length + sl , WC_AES_BLOCK_SIZE );
274+ ret = wc_AesGcmDecryptFinal (aes , miter .addr + ( ssize_t ) miter .length + sl , WC_AES_BLOCK_SIZE );
275275 else
276- ret = wc_AesGcmEncryptFinal (aes , miter .addr + miter .length + sl , WC_AES_BLOCK_SIZE );
276+ ret = wc_AesGcmEncryptFinal (aes , miter .addr + ( ssize_t ) miter .length + sl , WC_AES_BLOCK_SIZE );
277277 if (ret < 0 ) {
278278 WC_DEBUG_PR_CODEPOINT ();
279279 goto out ;
0 commit comments