diff options
author | Xin LI <delphij@FreeBSD.org> | 2005-07-13 10:40:07 +0000 |
---|---|---|
committer | Xin LI <delphij@FreeBSD.org> | 2005-07-13 10:40:07 +0000 |
commit | ae73eb3a7ff7f9cd5277fbbbee839fe7203e87db (patch) | |
tree | 321da183dcdfce50bead227fc8cbc472bed2fedc /lib/libcam | |
parent | ef95d02dd0f1c979cb5ccf7a0bffc0738e5dcc84 (diff) | |
download | src-ae73eb3a7ff7f9cd5277fbbbee839fe7203e87db.tar.gz src-ae73eb3a7ff7f9cd5277fbbbee839fe7203e87db.zip |
Better memory handling:
- It is acceptable to call free(3) when the given pointer itself
is NULL, so we do not need to determine NULL before passing
a pointer to free(3)
- Handle failure of malloc(3)
MT6/5 Candidate
Submitted by: Dan Lukes <dan at obluda cz>
PR: bin/83352
Notes
Notes:
svn path=/head/; revision=147949
Diffstat (limited to 'lib/libcam')
-rw-r--r-- | lib/libcam/camlib.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/lib/libcam/camlib.c b/lib/libcam/camlib.c index 03754bb9a620..c62d3a6c8ce0 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)); |