From: Timo Sirainen Date: Tue, 15 Aug 2017 11:27:40 +0000 (+0300) Subject: dict-sql: Change "uint" type to mean 64bit instead of 32bit integer. X-Git-Tag: 2.2.33.rc1~61 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c90266497bd04d48900df858673adceb66c6fad3;p=thirdparty%2Fdovecot%2Fcore.git dict-sql: Change "uint" type to mean 64bit instead of 32bit integer. This is likely what is usually wanted (especially in e.g. quotas). If someone actually wants it to be restricted to 32bit, we could add uint32 later on. --- diff --git a/src/lib-dict/dict-sql.c b/src/lib-dict/dict-sql.c index 7adc76a318..bf7c2fa5e3 100644 --- a/src/lib-dict/dict-sql.c +++ b/src/lib-dict/dict-sql.c @@ -231,7 +231,7 @@ sql_dict_value_escape(string_t *str, struct sql_dict *dict, const char **error_r) { buffer_t *buf; - unsigned int num; + uint64_t num; switch (value_type) { case DICT_SQL_TYPE_STRING: @@ -239,13 +239,13 @@ sql_dict_value_escape(string_t *str, struct sql_dict *dict, value_suffix); return 0; case DICT_SQL_TYPE_UINT: - if (value_suffix[0] != '\0' || str_to_uint(value, &num) < 0) { + if (value_suffix[0] != '\0' || str_to_uint64(value, &num) < 0) { *error_r = t_strdup_printf( - "%s field's value isn't unsigned integer: %s%s (in pattern: %s)", + "%s field's value isn't 64bit unsigned integer: %s%s (in pattern: %s)", field_name, value, value_suffix, map->pattern); return -1; } - str_printfa(str, "%u", num); + str_printfa(str, "%llu", (unsigned long long)num); return 0; case DICT_SQL_TYPE_HEXBLOB: break;