# HG changeset patch # User rtogni # Date 1200259285 0 # Node ID c9e200f1693d0ce920d4df730ae8b79d6001f9a4 # Parent c0e76b0bb543f20c485f3a3cfd80acc5d336a6e0 Simplify/cleanup of real_calc_response_and_checksum() diff -r c0e76b0bb543 -r c9e200f1693d stream/realrtsp/real.c --- a/stream/realrtsp/real.c Sun Jan 13 21:12:02 2008 +0000 +++ b/stream/realrtsp/real.c Sun Jan 13 21:21:25 2008 +0000 @@ -90,12 +90,7 @@ int i; unsigned char zres[16], buf[64]; - /* initialize return values */ - memset(response, 0, 41); - memset(chksum, 0, 9); - /* initialize buffer */ - memset(buf, 0, 64); AV_WB32(buf, 0xa1e9149d); AV_WB32(buf+4, 0x0e6b3b59); @@ -105,14 +100,12 @@ ch_len = strlen (challenge); if (ch_len == 40) /* what a hack... */ - { - challenge[32]=0; ch_len=32; - } if ( ch_len > 56 ) ch_len=56; /* copy challenge to buf */ memcpy(buf+8, challenge, ch_len); + memset(buf+8+ch_len, 0, 56-ch_len); } /* xor challenge bytewise with xor_table */ @@ -131,6 +124,7 @@ /* calculate checksum */ for (i=0; i<8; i++) chksum[i] = response[i*4]; + chksum[8] = 0; }