# HG changeset patch # User Evan Schoenberg # Date 1183129250 0 # Node ID e356256cb8a6b900003e98e1ec2643dc059e2f18 # Parent b4f5a2c0f00a3c89c8bd56003d3b083340924c74 purple_imgstore_add() has checks which can lead it to return NULL (which should be NULL, not 0); purple_imgstore_add_with_id() should therefore allow for the possibility that the returned value is NULL and check it before using it. An id of 0 is returned if the function fails. diff -r b4f5a2c0f00a -r e356256cb8a6 libpurple/imgstore.c --- a/libpurple/imgstore.c Thu Jun 28 14:53:47 2007 +0000 +++ b/libpurple/imgstore.c Fri Jun 29 15:00:50 2007 +0000 @@ -55,8 +55,8 @@ { PurpleStoredImage *img; - g_return_val_if_fail(data != NULL, 0); - g_return_val_if_fail(size > 0, 0); + g_return_val_if_fail(data != NULL, NULL); + g_return_val_if_fail(size > 0, NULL); img = g_new(PurpleStoredImage, 1); PURPLE_DBUS_REGISTER_POINTER(img, PurpleStoredImage); @@ -73,11 +73,13 @@ purple_imgstore_add_with_id(gpointer data, size_t size, const char *filename) { PurpleStoredImage *img = purple_imgstore_add(data, size, filename); - img->id = ++nextid; + if (img) { + img->id = ++nextid; - g_hash_table_insert(imgstore, &(img->id), img); + g_hash_table_insert(imgstore, &(img->id), img); + } - return img->id; + return (img ? img->id : 0); } PurpleStoredImage *purple_imgstore_find_by_id(int id) {