]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib-master: Copy settings_parser_get_error() string so it's usable as error_r
authorMartti Rannanjärvi <martti.rannanjarvi@dovecot.fi>
Fri, 12 Jan 2018 13:28:52 +0000 (15:28 +0200)
committerAki Tuomi <aki.tuomi@open-xchange.com>
Mon, 15 Jan 2018 08:20:36 +0000 (10:20 +0200)
Also convert t_strdup()s in master_service_settings_read() into p_strdup()s
using service->set_pool.

src/lib-master/master-service-settings.c

index ec4e84e4751774ac3e7b24d0053df816ebd55399..11cc5781e6cf83fb6116fad1053b25b74a49c4e4 100644 (file)
@@ -518,7 +518,8 @@ int master_service_settings_read(struct master_service *service,
                                ret = settings_parse_stream_read(parser,
                                                                 istream);
                                if (ret < 0)
-                                       *error_r = settings_parser_get_error(parser);
+                                       *error_r = p_strdup(service->set_pool,
+                                               settings_parser_get_error(parser));
                        }
                        alarm(0);
                        if (ret <= 0)
@@ -533,7 +534,7 @@ int master_service_settings_read(struct master_service *service,
 
                if (ret != 0) {
                        if (ret > 0) {
-                               *error_r = t_strdup_printf(
+                               *error_r = p_strdup_printf(service->set_pool,
                                        "Timeout reading config from %s", path);
                        }
                        i_close_fd(&fd);
@@ -554,7 +555,8 @@ int master_service_settings_read(struct master_service *service,
 
        if (use_environment || service->keep_environment) {
                if (settings_parse_environ(parser) < 0) {
-                       *error_r = t_strdup(settings_parser_get_error(parser));
+                       *error_r = p_strdup(service->set_pool,
+                                       settings_parser_get_error(parser));
                        settings_parser_deinit(&parser);
                        return -1;
                }
@@ -569,7 +571,8 @@ int master_service_settings_read(struct master_service *service,
        }
 
        if (!settings_parser_check(parser, service->set_pool, &error)) {
-               *error_r = t_strdup_printf("Invalid settings: %s", error);
+               *error_r = p_strdup_printf(service->set_pool,
+                               "Invalid settings: %s", error);
                settings_parser_deinit(&parser);
                return -1;
        }