diff --git a/libgphoto2/core.c b/libgphoto2/core.c index 6709cb4c1..a4388ea5c 100644 --- a/libgphoto2/core.c +++ b/libgphoto2/core.c @@ -627,8 +627,12 @@ int gp_abilities_list_dump (CameraAbilitiesList *list) int gp_abilities_list_append (CameraAbilitiesList *list, CameraAbilities *abilities) { - list->abilities = (CameraAbilities**)realloc(list->abilities, - sizeof(CameraAbilities*)*(list->count+1)); + if (!list->abilities) + list->abilities = (CameraAbilities**)malloc( + sizeof(CameraAbilities*)); + else + list->abilities = (CameraAbilities**)realloc(list->abilities, + sizeof(CameraAbilities*)*(list->count+1)); if (!list->abilities) return (GP_ERROR); diff --git a/libgphoto2/file.c b/libgphoto2/file.c index 5b987b353..aa338de0a 100644 --- a/libgphoto2/file.c +++ b/libgphoto2/file.c @@ -39,7 +39,10 @@ int gp_file_append (CameraFile *file, char *data, int size) { if (size < 0) return (GP_ERROR); - file->data = (char*)realloc(file->data, sizeof(char) * (file->size + size)); + if (!file->data) + file->data = (char*)malloc(sizeof(char) * (size)); + else + file->data = (char*)realloc(file->data, sizeof(char) * (file->size + size)); memcpy(&file->data[file->size], data, size); file->bytes_read = size; diff --git a/libgphoto2/settings.c b/libgphoto2/settings.c index a9e0cc4b1..ecf0fa62b 100644 --- a/libgphoto2/settings.c +++ b/libgphoto2/settings.c @@ -27,7 +27,6 @@ int verify_settings (char *settings_file) { for (x=0; x