You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
3.9 KiB
91 lines
3.9 KiB
--- FANN-2.2.0-Source/src/fann_error.c.old 2014-01-01 09:20:54.068451736 +0100 |
|
+++ FANN-2.2.0-Source/src/fann_error.c 2014-01-01 09:33:30.184789643 +0100 |
|
@@ -119,36 +119,36 @@ |
|
case FANN_E_NO_ERROR: |
|
break; |
|
case FANN_E_CANT_OPEN_CONFIG_R: |
|
- vsprintf(errstr, "Unable to open configuration file \"%s\" for reading.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Unable to open configuration file \"%s\" for reading.\n", ap); |
|
break; |
|
case FANN_E_CANT_OPEN_CONFIG_W: |
|
- vsprintf(errstr, "Unable to open configuration file \"%s\" for writing.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Unable to open configuration file \"%s\" for writing.\n", ap); |
|
break; |
|
case FANN_E_WRONG_CONFIG_VERSION: |
|
- vsprintf(errstr, |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, |
|
"Wrong version of configuration file, aborting read of configuration file \"%s\".\n", |
|
ap); |
|
break; |
|
case FANN_E_CANT_READ_CONFIG: |
|
- vsprintf(errstr, "Error reading \"%s\" from configuration file \"%s\".\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Error reading \"%s\" from configuration file \"%s\".\n", ap); |
|
break; |
|
case FANN_E_CANT_READ_NEURON: |
|
- vsprintf(errstr, "Error reading neuron info from configuration file \"%s\".\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Error reading neuron info from configuration file \"%s\".\n", ap); |
|
break; |
|
case FANN_E_CANT_READ_CONNECTIONS: |
|
- vsprintf(errstr, "Error reading connections from configuration file \"%s\".\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Error reading connections from configuration file \"%s\".\n", ap); |
|
break; |
|
case FANN_E_WRONG_NUM_CONNECTIONS: |
|
- vsprintf(errstr, "ERROR connections_so_far=%d, total_connections=%d\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "ERROR connections_so_far=%d, total_connections=%d\n", ap); |
|
break; |
|
case FANN_E_CANT_OPEN_TD_W: |
|
- vsprintf(errstr, "Unable to open train data file \"%s\" for writing.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Unable to open train data file \"%s\" for writing.\n", ap); |
|
break; |
|
case FANN_E_CANT_OPEN_TD_R: |
|
- vsprintf(errstr, "Unable to open train data file \"%s\" for writing.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Unable to open train data file \"%s\" for writing.\n", ap); |
|
break; |
|
case FANN_E_CANT_READ_TD: |
|
- vsprintf(errstr, "Error reading info from train data file \"%s\", line: %d.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Error reading info from train data file \"%s\", line: %d.\n", ap); |
|
break; |
|
case FANN_E_CANT_ALLOCATE_MEM: |
|
sprintf(errstr, "Unable to allocate memory.\n"); |
|
@@ -166,25 +166,26 @@ |
|
sprintf(errstr, "Unable to use the selected training algorithm.\n"); |
|
break; |
|
case FANN_E_TRAIN_DATA_SUBSET: |
|
- vsprintf(errstr, "Subset from %d of length %d not valid in training set of length %d.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Subset from %d of length %d not valid in training set of length %d.\n", ap); |
|
break; |
|
case FANN_E_INDEX_OUT_OF_BOUND: |
|
- vsprintf(errstr, "Index %d is out of bound.\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "Index %d is out of bound.\n", ap); |
|
break; |
|
case FANN_E_SCALE_NOT_PRESENT: |
|
sprintf(errstr, "Scaling parameters not present.\n"); |
|
break; |
|
case FANN_E_INPUT_NO_MATCH: |
|
- vsprintf(errstr, "The number of input neurons in the ann (%d) and data (%d) don't match\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "The number of input neurons in the ann (%d) and data (%d) don't match\n", ap); |
|
break; |
|
case FANN_E_OUTPUT_NO_MATCH: |
|
- vsprintf(errstr, "The number of output neurons in the ann (%d) and data (%d) don't match\n", ap); |
|
+ vsnprintf(errstr, FANN_ERRSTR_MAX, "The number of output neurons in the ann (%d) and data (%d) don't match\n", ap); |
|
break; |
|
} |
|
va_end(ap); |
|
|
|
if(errdat != NULL) |
|
{ |
|
+ /* possible memory leak, previous errdat->errstr not freed */ |
|
errdat->errstr = errstr; |
|
error_log = errdat->error_log; |
|
} |
|
@@ -197,6 +198,10 @@ |
|
{ |
|
fprintf(error_log, "FANN Error %d: %s", errno_f, errstr); |
|
} |
|
+ if (errdat == NULL) |
|
+ { |
|
+ free(errstr); |
|
+ } |
|
} |
|
|
|
/* INTERNAL FUNCTION
|
|
|