diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/comp.c | 10 | ||||
-rw-r--r-- | src/meta1parse.c | 4 |
2 files changed, 11 insertions, 3 deletions
@@ -664,13 +664,19 @@ component_verify (struct component *comp, grecs_locus_t *locus) comp->flags &= ~CF_WAIT; } - if (comp->mode != pies_comp_exec - && comp->redir[RETR_OUT].type != redir_null) + switch (comp->mode) + { + case pies_comp_accept: + case pies_comp_inetd: + if (comp->redir[RETR_OUT].type != redir_null) { COMPERR (grecs_error, "%s", _("stdout redirection invalid in this mode")); comp->redir[RETR_OUT].type = redir_null; } + default: + break; + } for (i = RETR_OUT; i <= RETR_ERR; i++) { diff --git a/src/meta1parse.c b/src/meta1parse.c index 4b2fccb..528a80a 100644 --- a/src/meta1parse.c +++ b/src/meta1parse.c @@ -296,6 +296,8 @@ meta1_translate_node (struct grecs_node *node) size_t len; int err = 0; + if (node->type != grecs_node_block) + return 0; comp = component_create (node->ident); for (stmt = node->down; stmt; stmt = stmt->next) { @@ -309,7 +311,7 @@ meta1_translate_node (struct grecs_node *node) } comp->privs.allgroups = 1; - comp->dir = META1_QUEUE_DIR (); + comp->dir = grecs_strdup (META1_QUEUE_DIR ()); comp->redir[RETR_ERR].type = redir_file; comp->redir[RETR_ERR].v.file = NULL; len = 0; |