Project

General

Profile

preludedb-data.diff

Fix insertion issue - Yoann VANDOORSELAERE, 06/01/2006 01:16 PM

Download (1.52 KB)

View differences:

classic-insert.c (local)
56 56
static inline int get_data(preludedb_sql_t *sql, idmef_data_t *data, char **output)
57 57
{
58 58
	switch ( idmef_data_get_type(data) ) {
59
	case IDMEF_DATA_TYPE_BYTE: case IDMEF_DATA_TYPE_BYTE_STRING:
60
		return preludedb_sql_escape_binary(sql, idmef_data_get_data(data), idmef_data_get_len(data), output);
61

  
62
	case IDMEF_DATA_TYPE_CHAR:
63
		return preludedb_sql_escape_fast(sql, idmef_data_get_data(data), 1, output);
64

  
65
	case IDMEF_DATA_TYPE_CHAR_STRING:
66
		return preludedb_sql_escape_fast(sql, idmef_data_get_data(data), idmef_data_get_len(data) - 1, output);
67

  
59
        case IDMEF_DATA_TYPE_BYTE:
60
        case IDMEF_DATA_TYPE_BYTE_STRING:
61
        case IDMEF_DATA_TYPE_CHAR_STRING:
62
        case IDMEF_DATA_TYPE_CHAR:
63
                return preludedb_sql_escape_binary(sql, idmef_data_get_data(data), idmef_data_get_len(data), output);
64
		
68 65
	default: {
69 66
		prelude_string_t *string;
70 67
		int ret;
......
79 76
			return ret;
80 77
		}
81 78

  
82
		ret = preludedb_sql_escape(sql, prelude_string_get_string(string), output);
79
		ret = preludedb_sql_escape_binary(sql, prelude_string_get_string(string), prelude_string_get_len(string), output);
83 80

  
84 81
		prelude_string_destroy(string);
85 82

  
......
1398 1395
                free(type);
1399 1396
                return ret;
1400 1397
        }
1401

  
1398
        
1402 1399
	ret = get_data(sql, idmef_additional_data_get_data(additional_data), &data);
1403 1400
	if ( ret < 0 ) {
1404 1401
		free(type);