I have previously used Qpopper 4.0.4 on RH Linux 7 with no problems. Now I
am trying to build another server using Qpopper 4.0.5 on RH Enterprise
Server 3 and am getting make errors due to pop_pass.c even though the code
seems the same.
I am not a C programmer, but on casual inspection it does look like in line
432, a structure PAM_conversation is being initialized using a type pam_conv
that is never defined.
Is this a problem that previous gcc compilers have ignored but now are
flagging as a potential buffer overflow problem or something like that?
Please, does anyone know a fix for this problem? A Google search shows
someone with the same problem on Mac OSX but no resolution.
-g -O2 -DHAVE_CONFIG_H -DLINUX -DUNIX pop_pass.c -o pop_pass.o
pop_pass.c:381: warning: `struct pam_response' declared inside parameter
list
pop_pass.c:381: warning: its scope is only this definition or declaration,
which
is probably not what you want
pop_pass.c:381: warning: `struct pam_message' declared inside parameter list
pop_pass.c: In function `PAM_qpopper_conv':
pop_pass.c:389: `PAM_SYSTEM_ERR' undeclared (first use in this function)
pop_pass.c:389: (Each undeclared identifier is reported only once
pop_pass.c:389: for each function it appears in.)
pop_pass.c:393: sizeof applied to an incomplete type
pop_pass.c:395: `PAM_CONV_ERR' undeclared (first use in this function)
pop_pass.c:400: dereferencing pointer to incomplete type
pop_pass.c:402: `PAM_PROMPT_ECHO_ON' undeclared (first use in this function)
pop_pass.c:403: invalid use of undefined type `struct pam_response'
pop_pass.c:403: dereferencing pointer to incomplete type
pop_pass.c:403: `PAM_SUCCESS' undeclared (first use in this function)
pop_pass.c:404: invalid use of undefined type `struct pam_response'
pop_pass.c:404: dereferencing pointer to incomplete type
pop_pass.c:408: `PAM_PROMPT_ECHO_OFF' undeclared (first use in this
function)
pop_pass.c:409: invalid use of undefined type `struct pam_response'
pop_pass.c:409: dereferencing pointer to incomplete type
pop_pass.c:410: invalid use of undefined type `struct pam_response'
pop_pass.c:410: dereferencing pointer to incomplete type
pop_pass.c:414: `PAM_TEXT_INFO' undeclared (first use in this function)
pop_pass.c:415: `PAM_ERROR_MSG' undeclared (first use in this function)
pop_pass.c:416: invalid use of undefined type `struct pam_response'
pop_pass.c:416: dereferencing pointer to incomplete type
pop_pass.c:417: invalid use of undefined type `struct pam_response'
pop_pass.c:417: dereferencing pointer to incomplete type
pop_pass.c: At top level:
pop_pass.c:432: variable `PAM_conversation' has initializer but incomplete
type
pop_pass.c:433: warning: excess elements in struct initializer
pop_pass.c:433: warning: (near initialization for `PAM_conversation')
pop_pass.c:435: warning: excess elements in struct initializer
pop_pass.c:435: warning: (near initialization for `PAM_conversation')
pop_pass.c: In function `auth_user':
pop_pass.c:443: `pam_handle_t' undeclared (first use in this function)
pop_pass.c:443: `pamh' undeclared (first use in this function)
pop_pass.c:451: invalid use of undefined type `struct pam_conv'
pop_pass.c:456: `PAM_SUCCESS' undeclared (first use in this function)
pop_pass.c:480: warning: assignment makes pointer from integer without a
cast
pop_pass.c:489: warning: assignment makes pointer from integer without a
cast
pop_pass.c:495: `PAM_ESTABLISH_CRED' undeclared (first use in this function)
pop_pass.c:498: warning: assignment makes pointer from integer without a
cast
pop_pass.c:505: `PAM_TTY' undeclared (first use in this function)
pop_pass.c:513: `PAM_RHOST' undeclared (first use in this function)
/usr/include/bits/socket.h: At top level:
pop_pass.c:432: storage size of `PAM_conversation' isn't known
make[1]: *** [pop_pass.o] Error 1
make[1]: Leaving directory `/home/ken/qpopper4.0.5/popper'
make: *** [popper_server] Error 2
