annotate src/protocols/yahoo/yahoo_auth.h @ 14142:89d043d547cc

[gaim-migrate @ 16784] Never allow Yahoo! to insert a NULL value into the outgoing packet hash. This fixes some random crashes when the packet gets sent, and yahoo_packet_length() is called, which eventually calls strlen(NULL), which crashes committer: Tailor Script <tailor@pidgin.im>
author Mark Doliner <mark@kingant.net>
date Wed, 16 Aug 2006 06:58:59 +0000
parents f4e58e94ced3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8350
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
1 /*
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
2 * yahoo_auth.h: Header for Yahoo Messenger authentication schemes. Eew.
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
3 *
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
4 * Copyright(c) 2003 Cerulean Studios
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
5 */
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
6
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
7 #ifndef _YAHOO_AUTH_H_
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
8 #define _YAHOO_AUTH_H_
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
9
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
10 #define NUM_TYPE_THREES 105
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
11 #define NUM_TYPE_FOURS 56
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
12 #define NUM_TYPE_FIVES 37
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
13
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
14 unsigned int yahoo_auth_finalCountdown(unsigned int challenge, int divisor, int inner_loop, int outer_loop);
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
15
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
16 /* We've defined the Yahoo authentication functions as having types 1-5; all take either 1 or 2 arguments.
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
17 */
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
18
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
19 typedef struct _auth {
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
20 int type;
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
21 int var1;
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
22 int var2;
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
23 } auth_function_t;
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
24
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
25 /* Type 3, 4 and 5 require lookups into ypager.exe's many static chunks of 256 bytes. Store them here.
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
26 */
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
27
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
28 struct buffer_t {
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
29 unsigned int buffer_start;
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
30 unsigned char buffer[257];
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
31 };
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
32
0018b8118e77 [gaim-migrate @ 9074]
Sean Egan <seanegan@gmail.com>
parents:
diff changeset
33 #endif /* _YAHOO_AUTH_H_ */