libpurple/protocols/qq/qq_base.c

changeset 28502
43d342af25d4
parent 27635
0cd19038c417
child 28981
4e3922ab4844
equal deleted inserted replaced
28499:57dd0993c647 28502:43d342af25d4
243 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 243 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
244 qd = (qq_data *) gc->proto_data; 244 qd = (qq_data *) gc->proto_data;
245 245
246 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 246 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
247 247
248 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 248 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
249 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 249 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
250 250
251 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 251 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
252 252
253 bytes = 0; 253 bytes = 0;
254 /* now generate the encrypted data 254 /* now generate the encrypted data
255 * 000-015 use password_twice_md5 as key to encrypt empty string */ 255 * 000-015 use password_twice_md5 as key to encrypt empty string */
256 encrypted_len = qq_encrypt(encrypted, (guint8 *) "", 0, qd->ld.pwd_twice_md5); 256 encrypted_len = qq_encrypt(encrypted, (guint8 *) "", 0, qd->ld.pwd_twice_md5);
607 qd = (qq_data *) gc->proto_data; 607 qd = (qq_data *) gc->proto_data;
608 608
609 raw_data = g_newa(guint8, 128); 609 raw_data = g_newa(guint8, 128);
610 memset(raw_data, 0, 128); 610 memset(raw_data, 0, 128);
611 611
612 encrypted = g_newa(guint8, 128 + 16); /* 16 bytes more */ 612 encrypted = g_newa(guint8, 128 + 17); /* 17 bytes more */
613 613
614 bytes = 0; 614 bytes = 0;
615 if (qd->redirect == NULL) { 615 if (qd->redirect == NULL) {
616 /* first packet to get server */ 616 /* first packet to get server */
617 qd->redirect_len = 15; 617 qd->redirect_len = 15;
680 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 680 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
681 qd = (qq_data *) gc->proto_data; 681 qd = (qq_data *) gc->proto_data;
682 682
683 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 683 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
684 684
685 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 685 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
686 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 686 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
687 687
688 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 688 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
689 689
690 bytes = 0; 690 bytes = 0;
691 bytes += qq_put8(raw_data + bytes, qd->ld.token_len); 691 bytes += qq_put8(raw_data + bytes, qd->ld.token_len);
692 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len); 692 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len);
693 bytes += qq_put8(raw_data + bytes, 3); /* Subcommand */ 693 bytes += qq_put8(raw_data + bytes, 3); /* Subcommand */
719 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 719 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
720 qd = (qq_data *) gc->proto_data; 720 qd = (qq_data *) gc->proto_data;
721 721
722 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 722 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
723 723
724 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 724 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
725 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 725 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
726 726
727 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 727 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
728 728
729 bytes = 0; 729 bytes = 0;
730 bytes += qq_put8(raw_data + bytes, qd->ld.token_len); 730 bytes += qq_put8(raw_data + bytes, qd->ld.token_len);
731 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len); 731 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len);
732 bytes += qq_put8(raw_data + bytes, 3); /* Subcommand */ 732 bytes += qq_put8(raw_data + bytes, 3); /* Subcommand */
763 qd = (qq_data *) gc->proto_data; 763 qd = (qq_data *) gc->proto_data;
764 764
765 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 765 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
766 g_return_if_fail(code != NULL && code_len > 0); 766 g_return_if_fail(code != NULL && code_len > 0);
767 767
768 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 768 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
769 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 769 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
770 770
771 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 771 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
772 772
773 bytes = 0; 773 bytes = 0;
774 bytes += qq_put8(raw_data + bytes, qd->ld.token_len); 774 bytes += qq_put8(raw_data + bytes, qd->ld.token_len);
775 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len); 775 bytes += qq_putdata(raw_data + bytes, qd->ld.token, qd->ld.token_len);
776 bytes += qq_put8(raw_data + bytes, 4); /* Subcommand */ 776 bytes += qq_put8(raw_data + bytes, 4); /* Subcommand */
996 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 996 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
997 qd = (qq_data *) gc->proto_data; 997 qd = (qq_data *) gc->proto_data;
998 998
999 g_return_if_fail(qd->ld.token_ex != NULL && qd->ld.token_ex_len > 0); 999 g_return_if_fail(qd->ld.token_ex != NULL && qd->ld.token_ex_len > 0);
1000 1000
1001 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 1001 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
1002 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 1002 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
1003 1003
1004 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 1004 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
1005 1005
1006 /* Encrypted password and put in encrypted */ 1006 /* Encrypted password and put in encrypted */
1007 bytes = 0; 1007 bytes = 0;
1008 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5)); 1008 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5));
1009 bytes += qq_put16(raw_data + bytes, 0); 1009 bytes += qq_put16(raw_data + bytes, 0);
1164 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 1164 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
1165 qd = (qq_data *) gc->proto_data; 1165 qd = (qq_data *) gc->proto_data;
1166 1166
1167 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 1167 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
1168 1168
1169 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 1169 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
1170 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 1170 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
1171 1171
1172 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 1172 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
1173 1173
1174 /* Encrypted password and put in encrypted */ 1174 /* Encrypted password and put in encrypted */
1175 bytes = 0; 1175 bytes = 0;
1176 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5)); 1176 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5));
1177 bytes += qq_put16(raw_data + bytes, 0); 1177 bytes += qq_put16(raw_data + bytes, 0);
1340 g_return_if_fail(gc != NULL && gc->proto_data != NULL); 1340 g_return_if_fail(gc != NULL && gc->proto_data != NULL);
1341 qd = (qq_data *) gc->proto_data; 1341 qd = (qq_data *) gc->proto_data;
1342 1342
1343 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0); 1343 g_return_if_fail(qd->ld.token != NULL && qd->ld.token_len > 0);
1344 1344
1345 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 16); 1345 raw_data = g_newa(guint8, MAX_PACKET_SIZE - 17);
1346 memset(raw_data, 0, MAX_PACKET_SIZE - 16); 1346 memset(raw_data, 0, MAX_PACKET_SIZE - 17);
1347 1347
1348 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 16 bytes more */ 1348 encrypted = g_newa(guint8, MAX_PACKET_SIZE); /* 17 bytes more */
1349 1349
1350 /* Encrypted password and put in encrypted */ 1350 /* Encrypted password and put in encrypted */
1351 bytes = 0; 1351 bytes = 0;
1352 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5)); 1352 bytes += qq_putdata(raw_data + bytes, qd->ld.pwd_md5, sizeof(qd->ld.pwd_md5));
1353 bytes += qq_put16(raw_data + bytes, 0); 1353 bytes += qq_put16(raw_data + bytes, 0);

mercurial