Changeset fbc7844 for protocols/oscar/tlv.c
- Timestamp:
- 2005-11-15T14:29:47Z (19 years ago)
- Branches:
- master
- Children:
- 9a103a2
- Parents:
- c1ede6e8
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
protocols/oscar/tlv.c
rc1ede6e8 rfbc7844 1 1 #include <aim.h> 2 2 3 static aim_tlv_t *createtlv(void)4 {5 return g_new0(aim_tlv_t, 1);6 }7 8 3 static void freetlv(aim_tlv_t **oldtlv) 9 4 { 10 11 5 if (!oldtlv || !*oldtlv) 12 6 return; … … 15 9 g_free(*oldtlv); 16 10 *oldtlv = NULL; 17 18 return;19 11 } 20 12 … … 46 38 length = aimbs_get16(bs); 47 39 48 #if 0 /* temporarily disabled until I know if they're still doing it or not */ 49 /* 50 * Okay, so now AOL has decided that any TLV of 51 * type 0x0013 can only be two bytes, despite 52 * what the actual given length is. So here 53 * we dump any invalid TLVs of that sort. Hopefully 54 * theres no special cases to this special case. 55 * - mid (30jun2000) 56 */ 57 if ((type == 0x0013) && (length != 0x0002)) 58 length = 0x0002; 59 #else 60 if (0) 61 ; 62 #endif 63 else { 64 65 cur = g_new0(aim_tlvlist_t, 1); 66 67 cur->tlv = createtlv(); 68 cur->tlv->type = type; 69 if ((cur->tlv->length = length)) 70 cur->tlv->value = aimbs_getraw(bs, length); 71 72 cur->next = list; 73 list = cur; 74 } 40 cur = g_new0(aim_tlvlist_t, 1); 41 42 cur->tlv = g_new0(aim_tlv_t, 1); 43 cur->tlv->type = type; 44 if ((cur->tlv->length = length)) 45 cur->tlv->value = aimbs_getraw(bs, length); 46 47 cur->next = list; 48 list = cur; 75 49 } 76 50 … … 173 147 return 0; 174 148 175 if (!(newtlv->tlv = createtlv())) {149 if (!(newtlv->tlv = g_new0(aim_tlv_t, 1))) { 176 150 g_free(newtlv); 177 151 return 0;
Note: See TracChangeset
for help on using the changeset viewer.