apps/srp.c:429: error: BUFFER_OVERRUN_L2
  Offset: [-oo, 2147483648] Size: 2500 by call to `srp_create_user`.
Showing all 13 steps of the trace


apps/srp.c:363:50: Unknown value from: strcmp
361.           if (pp[DB_srptype][0] == DB_SRP_INDEX) {
362.               maxgN = i;
363.               if ((gNindex < 0) && (gN != NULL) && strcmp(gN, pp[DB_srpid]) == 0)
                                                        ^
364.                   gNindex = i;
365.   

apps/srp.c:429:22: Call
427.                   if (!
428.                       (gNid =
429.                        srp_create_user(user, &(row[DB_srpverifier]),
                            ^
430.                                        &(row[DB_srpsalt]),
431.                                        gNrow ? gNrow[DB_srpsalt] : gN,

apps/srp.c:152:1: Parameter `g->strlen`
  150.   }
  151.   
  152. > static char *srp_create_user(char *user, char **srp_verifier,
  153.                                char **srp_usersalt, char *g, char *N,
  154.                                char *passout, int verbose)

apps/srp.c:169:14: Call
  167.           if (!
  168.               (gNid =
  169.                SRP_create_verifier(user, password, &salt, srp_verifier, N,
                      ^
  170.                                    g))) {
  171.               BIO_printf(bio_err, "Internal error creating SRP verifier\n");

crypto/srp/srp_vfy.c:543:1: Array declaration
    541.    * create a verifier (*salt,*verifier,g and N are in base64)
    542.    */
    543. > char *SRP_create_verifier(const char *user, const char *pass, char **salt,
    544.                             char **verifier, const char *N, const char *g)
    545.   {

crypto/srp/srp_vfy.c:564:20: Call
    562.           N_bn_alloc = BN_bin2bn(tmp, len, NULL);
    563.           N_bn = N_bn_alloc;
    564.           if ((len = t_fromb64(tmp, sizeof(tmp) ,g)) <= 0)
                              ^
    565.               goto err;
    566.           g_bn_alloc = BN_bin2bn(tmp, len, NULL);

crypto/srp/srp_vfy.c:33:1: <Offset trace>
31.    * Convert a base64 string into raw byte array representation.
32.    */
33. > static int t_fromb64(unsigned char *a, size_t alen, const char *src)
34.   {
35.       char *loc;

crypto/srp/srp_vfy.c:33:1: Parameter `alen`
      31.    * Convert a base64 string into raw byte array representation.
      32.    */
      33. > static int t_fromb64(unsigned char *a, size_t alen, const char *src)
      34.   {
      35.       char *loc;

crypto/srp/srp_vfy.c:57:5: Assignment
      55.       if (i == 0)
      56.           return 0;
      57.       size = i;
                ^
      58.       i = size - 1;
      59.       j = size;

crypto/srp/srp_vfy.c:59:5: Assignment
      57.       size = i;
      58.       i = size - 1;
      59.       j = size;
                ^
      60.       while (1) {
      61.           a[j] = a[i];

crypto/srp/srp_vfy.c:33:1: <Length trace>
31.    * Convert a base64 string into raw byte array representation.
32.    */
33. > static int t_fromb64(unsigned char *a, size_t alen, const char *src)
34.   {
35.       char *loc;

crypto/srp/srp_vfy.c:33:1: Parameter `*a`
      31.    * Convert a base64 string into raw byte array representation.
      32.    */
      33. > static int t_fromb64(unsigned char *a, size_t alen, const char *src)
      34.   {
      35.       char *loc;

crypto/srp/srp_vfy.c:80:12: Array access: Offset: [-oo, 2147483648] Size: 2500 by call to `srp_create_user` 
      78.               break;
      79.       }
      80.       while (a[j] == 0 && j <= size)
                       ^
      81.           ++j;
      82.       i = 0;
