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


apps/srp.c:369:50: Unknown value from: strcmp
367.           if (pp[DB_srptype][0] == DB_SRP_INDEX) {
368.               maxgN = i;
369.               if ((gNindex < 0) && (gN != NULL) && strcmp(gN, pp[DB_srpid]) == 0)
                                                        ^
370.                   gNindex = i;
371.   

apps/srp.c:433:22: Call
431.                   if (!
432.                       (gNid =
433.                        srp_create_user(user, &(row[DB_srpverifier]),
                            ^
434.                                        &(row[DB_srpsalt]),
435.                                        gNrow ? gNrow[DB_srpsalt] : gN,

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

apps/srp.c:173:21: Call
  171.               BIO_printf(bio_err, "Creating\n user=\"%s\"\n g=\"%s\"\n N=\"%s\"\n",
  172.                          user, g, N);
  173.           if ((gNid = SRP_create_verifier(user, password, &salt,
                             ^
  174.                                           srp_verifier, N, g)) == NULL) {
  175.               BIO_printf(bio_err, "Internal error creating SRP verifier\n");

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

crypto/srp/srp_vfy.c:567:20: Call
    565.           N_bn_alloc = BN_bin2bn(tmp, len, NULL);
    566.           N_bn = N_bn_alloc;
    567.           if ((len = t_fromb64(tmp, sizeof(tmp) ,g)) <= 0)
                              ^
    568.               goto err;
    569.           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:60:5: Assignment
      58.       if (i == 0)
      59.           return 0;
      60.       size = i;
                ^
      61.       i = size - 1;
      62.       j = size;

crypto/srp/srp_vfy.c:62:5: Assignment
      60.       size = i;
      61.       i = size - 1;
      62.       j = size;
                ^
      63.       while (1) {
      64.           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:64:9: Array access: Offset: [-oo, 2147483646] Size: 2500 by call to `srp_create_user` 
      62.       j = size;
      63.       while (1) {
      64.           a[j] = a[i];
                    ^
      65.           if (--i < 0)
      66.               break;
