This blog post explains the code: http://blog.existentialize.com/diagnosis-of-the-openssl-hear...
unsigned char *p = &s->s3->rrec.data[0], *pl;
I think it would be better written as: unsigned char *p = s->s3->rrec.data, *pl;
to make it clearer that data is a pointer within the structure.