crypto/dso/dso_dlfcn.c:325: error: BUFFER_OVERRUN_S2
  Offset: [`filespec1->strlen` + 1, `filespec1->strlen` + `filespec2->strlen` + 1] (⇐ [1, `filespec2->strlen` + 1] + `filespec1->strlen`) Size: [1, `filespec1->strlen` + `filespec2->strlen` + 2].
Showing all 6 steps of the trace


crypto/dso/dso_dlfcn.c:270:1: <Offset trace>
268.   }
269.   
270. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
271.                             const char *filespec2)
272.   {

crypto/dso/dso_dlfcn.c:270:1: Parameter `filespec1->strlen`
268.   }
269.   
270. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
271.                             const char *filespec2)
272.   {

crypto/dso/dso_dlfcn.c:270:1: <Length trace>
268.   }
269.   
270. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
271.                             const char *filespec2)
272.   {

crypto/dso/dso_dlfcn.c:270:1: Parameter `filespec2->strlen`
268.   }
269.   
270. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
271.                             const char *filespec2)
272.   {

crypto/dso/dso_dlfcn.c:311:9: Assignment
309.           int spec2len, len;
310.   
311.           spec2len = strlen(filespec2);
               ^
312.           len = spec2len + strlen(filespec1);
313.   

crypto/dso/dso_dlfcn.c:325:9: Array access: Offset: [filespec1->strlen + 1, filespec1->strlen + filespec2->strlen + 1] (⇐ [1, filespec2->strlen + 1] + filespec1->strlen) Size: [1, filespec1->strlen + filespec2->strlen + 2]
323.           strcpy(merged, filespec2);
324.           merged[spec2len] = '/';
325.           strcpy(&merged[spec2len + 1], filespec1);
               ^
326.       }
327.       return (merged);
