crypto/dso/dso_dlfcn.c:238: 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:185:1: <Offset trace>
183.   }
184.   
185. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
186.                             const char *filespec2)
187.   {

crypto/dso/dso_dlfcn.c:185:1: Parameter `filespec1->strlen`
183.   }
184.   
185. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
186.                             const char *filespec2)
187.   {

crypto/dso/dso_dlfcn.c:185:1: <Length trace>
183.   }
184.   
185. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
186.                             const char *filespec2)
187.   {

crypto/dso/dso_dlfcn.c:185:1: Parameter `filespec2->strlen`
183.   }
184.   
185. > static char *dlfcn_merger(DSO *dso, const char *filespec1,
186.                             const char *filespec2)
187.   {

crypto/dso/dso_dlfcn.c:224:9: Assignment
222.           int spec2len, len;
223.   
224.           spec2len = strlen(filespec2);
               ^
225.           len = spec2len + strlen(filespec1);
226.   

crypto/dso/dso_dlfcn.c:238: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]
236.           strcpy(merged, filespec2);
237.           merged[spec2len] = '/';
238.           strcpy(&merged[spec2len + 1], filespec1);
               ^
239.       }
240.       return merged;
