diff --git a/lib/libcam/camlib.c b/lib/libcam/camlib.c index 03754bb9a62..c62d3a6c8ce 100644 --- a/lib/libcam/camlib.c +++ b/lib/libcam/camlib.c @@ -97,8 +97,7 @@ cam_getccb(struct cam_device *dev) void cam_freeccb(union ccb *ccb) { - if (ccb != NULL) - free(ccb); + free(ccb); } /* @@ -708,8 +707,7 @@ cam_close_device(struct cam_device *dev) cam_close_spec_device(dev); - if (dev != NULL) - free(dev); + free(dev); } void @@ -757,6 +755,11 @@ cam_device_dup(struct cam_device *device) } newdev = malloc(sizeof(struct cam_device)); + if (newdev == NULL) { + snprintf(cam_errbuf, CAM_ERRBUF_SIZE, + "%s: couldn't malloc CAM device structure", func_name); + return(NULL); + } bcopy(device, newdev, sizeof(struct cam_device));