ssl/s3_cbc.c:181: error: INTEGER_OVERFLOW_L2
  ([0, `*rec->data`] - [0, 254]):unsigned32 by call to `constant_time_ge_8`.
Showing all 11 steps of the trace


ssl/s3_cbc.c:119:1: Parameter `rec->length`
117.    *  -1: otherwise.
118.    */
119. > int tls1_cbc_remove_padding(const SSL *s,
120.                               SSL3_RECORD *rec,
121.                               unsigned block_size, unsigned mac_size)

ssl/s3_cbc.c:181:30: Call
179.   
180.       for (i = 0; i < to_check; i++) {
181.           unsigned char mask = constant_time_ge_8(padding_length, i);
                                    ^
182.           unsigned char b = rec->data[rec->length - 1 - i];
183.           /*

crypto/constant_time_locl.h:153:1: Parameter `a`
  151.   }
  152.   
  153. > static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
  154.   {
  155.       return (unsigned char)(constant_time_ge(a, b));

crypto/constant_time_locl.h:155:28: Call
  153.   static inline unsigned char constant_time_ge_8(unsigned int a, unsigned int b)
  154.   {
  155.       return (unsigned char)(constant_time_ge(a, b));
                                    ^
  156.   }
  157.   

crypto/constant_time_locl.h:148:1: Parameter `a`
    146.   }
    147.   
    148. > static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
    149.   {
    150.       return ~constant_time_lt(a, b);

crypto/constant_time_locl.h:150:13: Call
    148.   static inline unsigned int constant_time_ge(unsigned int a, unsigned int b)
    149.   {
    150.       return ~constant_time_lt(a, b);
                       ^
    151.   }
    152.   

crypto/constant_time_locl.h:138:1: <LHS trace>
136.   }
137.   
138. > static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
139.   {
140.       return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));

crypto/constant_time_locl.h:138:1: Parameter `a`
      136.   }
      137.   
      138. > static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
      139.   {
      140.       return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));

crypto/constant_time_locl.h:138:1: <RHS trace>
136.   }
137.   
138. > static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
139.   {
140.       return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));

crypto/constant_time_locl.h:138:1: Parameter `b`
      136.   }
      137.   
      138. > static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
      139.   {
      140.       return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));

crypto/constant_time_locl.h:140:12: Binary operation: ([0, *rec->data] - [0, 254]):unsigned32 by call to `constant_time_ge_8` 
      138.   static inline unsigned int constant_time_lt(unsigned int a, unsigned int b)
      139.   {
      140.       return constant_time_msb(a ^ ((a ^ b) | ((a - b) ^ b)));
                        ^
      141.   }
      142.   
