Hi Simon
int _gnutls_helloworld_supp_recv_params(gnutls_session_t session,const
opaque *data,size_t _data_size)
{
uint8_t len;
ssize_t data_size = _data_size;
unsigned char *msg;
if (data_size > 0)
{
len = data[0];
DECR_LEN (data_size, len);
msg=(unsigned char*)malloc(len*sizeof(unsigned char));
memcpy(msg,&data[1],len);
msg[len]='\0';
printf("supp data: %s\n",msg);
}
return 0;
Shouldn't you return the length of parsed data here? Look at
gnutls_supplemental.c, the function _gnutls_parse_supplemental trusts
your function to return the proper length for incrementing the length
pointer for its parsing code.
Just a quick response, haven't looked into this in detail.
/Simon
I don't know whether that would have been the next issue (I fixed it
anyway now), but the bigger problem was that I forgot to specify the
helloworld supplemental functions and type in lib/gnutls_supplemental.c:
gnutls_supplemental_entry _gnutls_supplemental[] = {
{ "helloworld",
GNUTLS_SUPPLEMENTAL_HELLOWORLD_DATA,
gnutls_helloworld_supp_recv_params,
gnutls_helloworld_supp_send_params },
{0, 0, 0, 0}
};
Now, I got one step further and the crash occurs in ext_helloworld.c in
_gnutls_helloworld_supp_recv_params in line "DECR_LEN (data_size,
len);". I try to debug that further....
Thanks!
Carolin
_______________________________________________
Help-gnutls mailing list
address@hidden
http://lists.gnu.org/mailman/listinfo/help-gnutls