1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
|
From afbb33cf9ff750e93a9a4c1f51a3b62d584f056e Mon Sep 17 00:00:00 2001
From: Sergey Poznyakoff <gray@gnu.org>
Date: Sun, 19 Mar 2017 17:31:08 +0200
Subject: Fix a bug in field-map handling.
* libmailutils/cfg/driver.c (parse_mapping): Fix expected value type.
* libmu_auth/sql.c (get_field): Remove left-over mu_assoc_ref call
(see 622bc770).
---
NEWS | 2 +-
libmailutils/cfg/driver.c | 7 ++++++-
libmu_auth/sql.c | 11 +++++++----
3 files changed, 14 insertions(+), 6 deletions(-)
diff --git a/libmailutils/cfg/driver.c b/libmailutils/cfg/driver.c
index 7da75a8..8af543d 100644
--- a/libmailutils/cfg/driver.c
+++ b/libmailutils/cfg/driver.c
@@ -617,10 +617,15 @@ static int
parse_mapping (void *item, void *data)
{
struct mapping_closure *clos = data;
- char *str = item;
+ struct mu_config_value *cval = item;
+ char const *str;
size_t len;
char *key, *val;
int rc;
+
+ if (mu_cfg_assert_value_type (cval, MU_CFG_STRING))
+ return 1;
+ str = cval->v.string;
len = strcspn (str, "=");
if (str[len] == 0)
diff --git a/libmu_auth/sql.c b/libmu_auth/sql.c
index d69c36c..c50598d 100644
--- a/libmu_auth/sql.c
+++ b/libmu_auth/sql.c
@@ -214,20 +214,23 @@ mu_sql_expand_query (const char *query, const char *ustr)
static int
get_field (mu_sql_connection_t conn, const char *id, char **ret, int mandatory)
{
- const char **name = mu_assoc_ref (mu_sql_module_config.field_map, id);
- int rc = mu_sql_get_field (conn, 0, name ? *name : id, ret);
+ int rc;
+ const char *name = mu_assoc_get (mu_sql_module_config.field_map, id);
+ if (!name)
+ name = id;
+ rc = mu_sql_get_field (conn, 0, name, ret);
if (rc)
{
if (mandatory || rc != MU_ERR_NOENT)
mu_error (_("cannot get SQL field `%s' (`%s'): %s"),
- id, name ? *name : id, mu_strerror (rc));
+ id, name, mu_strerror (rc));
}
else if (!*ret)
{
if (mandatory)
{
mu_error (_("SQL field `%s' (`%s') has NULL value"),
- id, name ? *name : id);
+ id, name);
rc = MU_ERR_READ;
}
else
--
cgit v1.0-41-gc330
|