Discussion:
Building INN / Cyrus SASL with GCC 8.1
Julien ÉLIE
2018-05-03 20:38:06 UTC
Permalink
Hi Ken,

Maybe it is still time for inclusion in the forthcoming release.
Building the INN news server with GCC 8.1 gives the following warning:

imap_connection.c:1296:23: error: cast between incompatible function
types from ‘int (*)(void *, int, const char **, unsigned int *)’ to
‘int (*)(void)’ [-Werror=cast-function-type]
SASL_CB_GETREALM, (sasl_callback_ft) &getsimple, NULL



static sasl_callback_t saslcallbacks[] = {
{
SASL_CB_GETREALM, (sasl_callback_ft) &getsimple, NULL
}, {
SASL_CB_USER, (sasl_callback_ft) &getsimple, NULL
}, {
SASL_CB_AUTHNAME, (sasl_callback_ft) &getsimple, NULL
}, {
SASL_CB_PASS, (sasl_callback_ft) &getsecret, NULL
}, {
SASL_CB_LIST_END, NULL, NULL
}
};


saslplug.h currently defines:
typedef int (*sasl_callback_ft)(void);



But if I change it to:
typedef void (*sasl_callback_ft)(void);
I have another warning:
imap_connection.c:1297:23: error: initialization of ‘int (*)(void)’ from
incompatible pointer type ‘void (*)(void)’
[-Werror=incompatible-pointer-types]

Same thing with:
typedef void (*sasl_callback_ft)(void *, int, const char **,
unsigned int *);
that gives:
imap_connection.c:1297:23: error: initialization of ‘int (*)(void)’ from
incompatible pointer type ‘int (*)(void *, int, const char **, unsigned
int *)’ [-Werror=incompatible-pointer-types]




Do you have a clue for how to fix it?
It will probably need a change to the typedef in saslplug.h.
--
Julien ÉLIE

« C'est la goutte d'eau qui fait déborder le vase et qui met le feu
aux poudres. »
Loading...