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];