apps/rehash.c:231: error: BUFFER_OVERRUN_L3
  Offset added: [1, 4096] Size: [1, 4096] by call to `add_entry`.
Showing all 14 steps of the trace


apps/rehash.c:200:1: Array declaration
198.    * This can be -1 if bad filename, or an error count.
199.    */
200. > static int handle_symlink(const char *filename, const char *fullpath)
201.   {
202.       unsigned int hash = 0;

apps/rehash.c:231:12: Call
229.       linktarget[n] = 0;
230.   
231.       return add_entry(type, hash, linktarget, NULL, 0, id);
                  ^
232.   }
233.   

apps/rehash.c:132:1: Parameter `filename->strlen`
  130.    * Process an entry; return number of errors.
  131.    */
  132. > static int add_entry(enum Type type, unsigned int hash, const char *filename,
  133.                         const unsigned char *digest, int need_symlink,
  134.                         unsigned short old_id)

apps/rehash.c:178:24: Call
  176.           *ep = nilhentry;
  177.           ep->old_id = ~0;
  178.           ep->filename = OPENSSL_strdup(filename);
                                ^
  179.           if (bp->last_entry)
  180.               bp->last_entry->next = ep;

crypto/o_str.c:120:1: <Offset trace>
118.   }
119.   
120. > char *CRYPTO_strdup(const char *str, const char* file, int line)
121.   {
122.       char *ret;

crypto/o_str.c:120:1: Parameter `str->strlen`
    118.   }
    119.   
    120. > char *CRYPTO_strdup(const char *str, const char* file, int line)
    121.   {
    122.       char *ret;

crypto/o_str.c:127:5: Assignment
    125.       if (str == NULL)
    126.           return NULL;
    127.       size = strlen(str) + 1;
               ^
    128.       ret = CRYPTO_malloc(size, file, line);
    129.       if (ret != NULL)

crypto/o_str.c:120:1: <Length trace>
118.   }
119.   
120. > char *CRYPTO_strdup(const char *str, const char* file, int line)
121.   {
122.       char *ret;

crypto/o_str.c:120:1: Parameter `str->strlen`
    118.   }
    119.   
    120. > char *CRYPTO_strdup(const char *str, const char* file, int line)
    121.   {
    122.       char *ret;

crypto/o_str.c:127:5: Assignment
    125.       if (str == NULL)
    126.           return NULL;
    127.       size = strlen(str) + 1;
               ^
    128.       ret = CRYPTO_malloc(size, file, line);
    129.       if (ret != NULL)

crypto/o_str.c:128:11: Call
    126.           return NULL;
    127.       size = strlen(str) + 1;
    128.       ret = CRYPTO_malloc(size, file, line);
                     ^
    129.       if (ret != NULL)
    130.           memcpy(ret, str, size);

crypto/mem.c:124:9: Assignment
      122.   
      123.       if (num <= 0)
      124.           return NULL;
                     ^
      125.   
      126.       allow_customize = 0;

crypto/o_str.c:128:5: Assignment
    126.           return NULL;
    127.       size = strlen(str) + 1;
    128.       ret = CRYPTO_malloc(size, file, line);
               ^
    129.       if (ret != NULL)
    130.           memcpy(ret, str, size);

crypto/o_str.c:130:9: Array access: Offset added: [1, 4096] Size: [1, 4096] by call to `add_entry` 
    128.       ret = CRYPTO_malloc(size, file, line);
    129.       if (ret != NULL)
    130.           memcpy(ret, str, size);
                   ^
    131.       return ret;
    132.   }
