Mercurial > pidgin
comparison libpurple/protocols/oscar/snac.c @ 29951:cb4eb163e3a4
oscar: g_malloc can't fail (in a way that doesn't abort)
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 16 May 2010 05:57:08 +0000 |
parents | 44b4e8bd759b |
children | 11c54d781835 |
comparison
equal
deleted
inserted
replaced
29950:e8b781c23fb6 | 29951:cb4eb163e3a4 |
---|---|
54 snac.id = od->snacid_next++; | 54 snac.id = od->snacid_next++; |
55 snac.family = family; | 55 snac.family = family; |
56 snac.type = type; | 56 snac.type = type; |
57 snac.flags = flags; | 57 snac.flags = flags; |
58 | 58 |
59 if (datalen) { | 59 if (datalen) |
60 if (!(snac.data = g_malloc(datalen))) | 60 snac.data = g_memdup(data, datalen); |
61 return 0; /* er... */ | 61 else |
62 memcpy(snac.data, data, datalen); | |
63 } else | |
64 snac.data = NULL; | 62 snac.data = NULL; |
65 | 63 |
66 return aim_newsnac(od, &snac); | 64 return aim_newsnac(od, &snac); |
67 } | 65 } |
68 | 66 |
76 int index; | 74 int index; |
77 | 75 |
78 if (!newsnac) | 76 if (!newsnac) |
79 return 0; | 77 return 0; |
80 | 78 |
81 if (!(snac = g_malloc(sizeof(aim_snac_t)))) | 79 snac = g_memdup(newsnac, sizeof(aim_snac_t)); |
82 return 0; | |
83 memcpy(snac, newsnac, sizeof(aim_snac_t)); | |
84 snac->issuetime = time(NULL); | 80 snac->issuetime = time(NULL); |
85 | 81 |
86 index = snac->id % FAIM_SNAC_HASH_SIZE; | 82 index = snac->id % FAIM_SNAC_HASH_SIZE; |
87 | 83 |
88 snac->next = (aim_snac_t *)od->snac_hash[index]; | 84 snac->next = (aim_snac_t *)od->snac_hash[index]; |