Removing function names from errors (PR 9058)

Viktor Dukhovni openssl-users at dukhovni.org
Wed Jun 12 22:26:14 UTC 2019


On Wed, Jun 12, 2019 at 10:02:25AM +0100, Matt Caswell wrote:

> OTOH I do find them quite helpful from a debugging perspective, e.g. when people
> send in questions along the lines of "I got this error what does it mean/how do
> I fix it" - although what is actually useful is usually the function name rather
> than the function code itself.

Indeed what's needed is the function name.  The numeric code is far
less important.  On the error consumer side, the idiom I'm familiar
with is:

    while ((err = ERR_get_error_line_data(&file, &line, &data, &flags)) != 0) {
        ERR_error_string_n(err, buffer, sizeof(buffer));
        if (flags & ERR_TXT_STRING)
            printf("...: %s:%s:%d:%s", buffer, file, line, data);
        else
            printf("...: %s:%s:%d", buffer, file, line);
    }

this makes no explicit reference to function numbers, returning the
appropriate strings.  So any change is likely limited to error
producers.

On the producer side, my ssl_dane library (used in Exim for example),
does depend on the function ordinal API:

    https://github.com/vdukhovni/ssl_dane/blob/master/danessl.c#L52-L118
    https://github.com/vdukhovni/ssl_dane/blob/master/danessl.c#L52-L118

so that would need to change (or be longer supported) if the function
ordinals are replaced by strings, or otherwise change.

-- 
	Viktor.


More information about the openssl-project mailing list