crypto/err/err.c:335: error: BUFFER_OVERRUN_L3
  Offset: [-15, 15] Size: 16.
Showing all 6 steps of the trace


crypto/err/err.c:314:1: <Offset trace>
312.   	     data,flags)); }
313.   
314. > static unsigned long get_error_values(int inc, const char **file, int *line,
315.   	     const char **data, int *flags)
316.   	{	

crypto/err/err.c:314:1: Global `ERR_get_state.fallback.bottom`
312.   	     data,flags)); }
313.   
314. > static unsigned long get_error_values(int inc, const char **file, int *line,
315.   	     const char **data, int *flags)
316.   	{	

crypto/err/err.c:324:2: Assignment
322.   
323.   	if (es->bottom == es->top) return(0);
324.   	i=(es->bottom+1)%ERR_NUM_ERRORS;
        ^
325.   
326.   	ret=es->err_buffer[i];

crypto/err/err.c:321:5: <Length trace>
319.   	unsigned long ret;
320.   
321.   	es=ERR_get_state();
           ^
322.   
323.   	if (es->bottom == es->top) return(0);

crypto/err/err.c:321:5: Call
319.   	unsigned long ret;
320.   
321.   	es=ERR_get_state();
           ^
322.   
323.   	if (es->bottom == es->top) return(0);

crypto/err/err.c:335:7: Array access: Offset: [-15, 15] Size: 16
333.   	if ((file != NULL) && (line != NULL))
334.   		{
335.   		if (es->err_file[i] == NULL)
             ^
336.   			{
337.   			*file="NA";

static unsigned long get_error_values(int inc, const char **file, int *line,
	     const char **data, int *flags)
	{
	int i=0;
	ERR_STATE *es;
	unsigned long ret;
	es=ERR_get_state();
	if (es->bottom == es->top) return(0);
	i=(es->bottom+1)%ERR_NUM_ERRORS;
	ret=es->err_buffer[i];
	if (inc)
		{
		es->bottom=i;
		es->err_buffer[i]=0;
		}
	if ((file != NULL) && (line != NULL))
		{
		if (es->err_file[i] == NULL)
			{
			*file="NA";
			if (line != NULL) *line=0;
			}
		else
			{
			*file=es->err_file[i];
			if (line != NULL) *line=es->err_line[i];
			}
		}
	if (data != NULL)
		{
		if (es->err_data[i] == NULL)
			{
			*data="";
			if (flags != NULL) *flags=0;
			}
		else
			{
			*data=es->err_data[i];
			if (flags != NULL) *flags=es->err_data_flags[i];
			}
		}
	return(ret);
	}
['static unsigned long get_error_values(int inc, const char **file, int *line,\n\t     const char **data, int *flags)\n\t{\n\tint i=0;\n\tERR_STATE *es;\n\tunsigned long ret;\n\tes=ERR_get_state();\n\tif (es->bottom == es->top) return(0);\n\ti=(es->bottom+1)%ERR_NUM_ERRORS;\n\tret=es->err_buffer[i];\n\tif (inc)\n\t\t{\n\t\tes->bottom=i;\n\t\tes->err_buffer[i]=0;\n\t\t}\n\tif ((file != NULL) && (line != NULL))\n\t\t{\n\t\tif (es->err_file[i] == NULL)\n\t\t\t{\n\t\t\t*file="NA";\n\t\t\tif (line != NULL) *line=0;\n\t\t\t}\n\t\telse\n\t\t\t{\n\t\t\t*file=es->err_file[i];\n\t\t\tif (line != NULL) *line=es->err_line[i];\n\t\t\t}\n\t\t}\n\tif (data != NULL)\n\t\t{\n\t\tif (es->err_data[i] == NULL)\n\t\t\t{\n\t\t\t*data="";\n\t\t\tif (flags != NULL) *flags=0;\n\t\t\t}\n\t\telse\n\t\t\t{\n\t\t\t*data=es->err_data[i];\n\t\t\tif (flags != NULL) *flags=es->err_data_flags[i];\n\t\t\t}\n\t\t}\n\treturn(ret);\n\t}']