My bad, it was me too.

I will do the merge request then.

Regards,
Alexis VACHETTE.
On 11/01/2016 14:40, Alexis VACHETTE wrote:
Hi Michael,

I fixed the parenthesis typo, segmentation fault nonetheless.

Regards,
On 11/01/2016 14:38, Michael Morak wrote:
Hi,

it seems that Joerg's fix was missing a closing parenthesis. The following should work:

if ((fp = fopen(config, "r")) == NULL) {
        log_warn("warn: table \"%s\"", config);
        return 0;
}

Cheers,
Michael

On 11 January 2016 at 14:28, Alexis VACHETTE <avache...@sisteer.com <mailto:avache...@sisteer.com>> wrote:

    It's working with small change :

    *** a/table_static.c    2016-01-11 14:23:24.595515300 +0100
    --- b/table_static.c    2016-01-11 14:25:26.991220345 +0100
    ***************
    *** 93,104 ****
            char    *valp;
            size_t   ret = 0;

    !         fp = fopen(config, "r");
    !
    !         if (fp == NULL) {
    !                 log_warn("warn: table \"%s\"", config);
    !                 return 0;
    !         }

            while ((flen = getline(&buf, &sz, fp)) != -1) {
                    if (buf[flen - 1] == '\n')
    --- 93,101 ----
            char    *valp;
            size_t   ret = 0;

    !       fp = fopen(config, "r");
    !       if (fp == NULL)
    !               return 0;

            while ((flen = getline(&buf, &sz, fp)) != -1) {
                    if (buf[flen - 1] == '\n')

    Regards,
    Alexis VACHETTE.

    On 11/01/2016 14:18, Alexis VACHETTE wrote:
    Joerg,

    Thanks for your advice.

    I introduced a "goto label" because if I add a log_warn()
    function before the return, smtpd start and exit right away.

    Your fix produce a segmentation fault with the portable version.

    Either way I don't know why a debugging function exit/crash the
    daemon.

    Regards,
    *Alexis VACHETTE | Network and System Engineer
    * Sisteer France: 43 rue Pierre Valette, 92240 Malakoff – France
    Direct line: +33 1 70 95 51 19 | Fax: +33 1 70 95 50 90
    <tel:%2B33%201%2070%2095%2050%2090>
    www.sisteer.com <http://www.sisteer.com>
    On 11/01/2016 12:52, Joerg Jung wrote:
    On Mon, Jan 11, 2016 at 10:25:47AM +0100, Alexis VACHETTE wrote:
    Hi,

    It was stated last week that OpenSMTPD daemon doesn't throw any warning if a
    specific table isn't readable by OpenSMTPD user.

    I made a patch for the portable version on github :

    *** a/table_static.c    2016-01-11 10:16:15.486422024 +0100
    --- b/table_static.c    2016-01-08 12:58:58.564321019 +0100
    ***************
    *** 95,101 ****

           fp = fopen(config, "r");
           if (fp == NULL)
    !         return 0;

           while ((flen = getline(&buf, &sz, fp)) != -1) {
               if (buf[flen - 1] == '\n')
    --- 95,101 ----

           fp = fopen(config, "r");
           if (fp == NULL)
    !         goto err;

           while ((flen = getline(&buf, &sz, fp)) != -1) {
               if (buf[flen - 1] == '\n')
    ***************
    *** 143,148 ****
    --- 143,151 ----
           free(buf);
           fclose(fp);
           return ret;
    + err:
    +         log_warn("warn: Table \"%s\"", config);
    +         return 0;
       }

       static int

    If someone could review it and test it before I fork the repository and make
    a merge request on github.
    Some notes:

    - Development happens in OpenBSD -current, so please diff against CVS.
    - Please send unified diffs (not context output as above).
    - I do not see the point of introducing a goto/label, just add the log
       message and return, also if check can be folded, like this:

    if ((fp = fopen(config, "r") == NULL) {
        log_warn("warn: table \"%s\"", config);
        return 0;
    }

    Thank you.

    Regards,
    Alexis VACHETTE.

-- You received this mail because you are subscribed tom...@opensmtpd.org <mailto:misc@opensmtpd.org>
    To unsubscribe, send a mail to:misc+unsubscr...@opensmtpd.org
    <mailto:misc+unsubscr...@opensmtpd.org>






Reply via email to