please help with: warning: initialization makes integer from
pointer
Danny Braniss
danny at cs.huji.ac.il
Fri Oct 8 08:21:15 PDT 2004
> Dear FreeBSD hackers,
>
> could somebody please help Jonathan, the dspam owner, how to code
> this best under FreeBSD ?
>
> Please see his question below:
>
> On Thu, Oct 07, 2004 at 01:16:17PM -0400, Jonathan A. Zdziarski wrote:
> > I'm a little concerned about these warnings:
> >
> > pgsql_drv.c:873: warning: initialization makes integer from pointer
> > without a cast
> > pgsql_drv.c:874: warning: initialization makes integer from pointer
> > without a cast
> >
> > This could cause some problems with dspam. Is there a freeBSDish way to
> > do this:
> >
> > s->p_getpwnam = (struct passwd) { NULL, NULL, 0, 0, NULL, NULL, NULL };
> > s->p_getpwuid = (struct passwd) { NULL, NULL, 0, 0, NULL, NULL, NULL };
> >
> > Perhaps memset(s->p_getpwnam, 0, sizeof(struct passwd)) ?
> >
> >
> > >make all-recursive
> > >Making all in .
> > >[...]
> > > gcc -DHAVE_CONFIG_H -DLOGDIR=\"/var/mail/dspam\"
> > > -DCONFIG_DEFAULT=\"/etc/dspam.conf\" -D_REENTRANT
> > > -D_POSIX_PTHREAD_SEMANTICS -I. -I. -I. -I/usr/local/include -g -O2 -Wall
> > > -Wmissing-prototypes -Wmissing-declarations -MT pgsql_drv.lo -MD -MP -MF
> > > .deps/pgsql_drv.Tpo -c pgsql_drv.c -fPIC -DPIC -o .libs/pgsql_drv.o
> > >pgsql_drv.c: In function `_ds_init_storage':
> > >pgsql_drv.c:873: warning: initialization makes integer from pointer
> > >without a cast
> > >pgsql_drv.c:874: warning: initialization makes integer from pointer
> > >without a cast
> > >pgsql_drv.c: In function `_ds_create_signature_id':
> > >pgsql_drv.c:1028: warning: long unsigned int format, time_t arg (arg 4)
> > >pgsql_drv.c:1028: warning: long unsigned int format, time_t arg (arg 4)
> > >[...]
>
> int
> _ds_init_storage (DSPAM_CTX * CTX, void *dbh)
> {
> struct _pgsql_drv_storage *s;
> FILE *file;
> char filename[MAX_FILENAME_LENGTH];
> char buffer[256];
> char hostname[128] = "";
> char user[64] = "";
> char password[32] = "";
> char db[64] = "";
> int port = 5432, i = 0;
> // PGresult *result;
>
> /* don't init if we're already initted */
> if (CTX->storage != NULL)
> {
> LOGDEBUG ("_ds_init_storage: storage already initialized");
> return EINVAL;
> }
>
> s = malloc (sizeof (struct _pgsql_drv_storage));
> if (s == NULL)
> {
> LOG (LOG_CRIT, ERROR_MEM_ALLOC);
> return EUNKNOWN;
> }
>
> s->dbh = NULL;
> s->control_token = 0;
> s->iter_user = NULL;
> s->iter_token = NULL;
> s->iter_sig = NULL;
> s->control_token = 0;
> s->control_sh = 0;
> s->control_ih = 0;
> s->dbh_attached = (dbh) ? 1 : 0;
> s->u_getnextuser[0] = 0;
> s->p_getpwnam = (struct passwd) { NULL, NULL, 0, 0, NULL, NULL, NULL };
> ^^^^^^^^^^^^^^^^^^^^ !
> s->p_getpwuid = (struct passwd) { NULL, NULL, 0, 0, NULL, NULL, NULL };
> ^^^^^^^^^^^^^^^^^^^^ !
>
>
>
>
> Andreas ///
what about:
s = calloc (1, sizeof (struct _pgsql_drv_storage));
if (s == NULL)
{
LOG (LOG_CRIT, ERROR_MEM_ALLOC);
return EUNKNOWN;
}
if(dbh)
s->dbh_attached = 1;
danny
More information about the freebsd-hackers
mailing list