diff options
author | Marcus Meissner <marcus@jet.franken.de> | 2020-05-10 15:16:35 +0200 |
---|---|---|
committer | Marcus Meissner <marcus@jet.franken.de> | 2020-05-10 15:16:35 +0200 |
commit | 825a2cad3f97a1583a9158830331625ec3a86041 (patch) | |
tree | 0f10ad72af1365f250c318b60586fd08a0e27ea6 | |
parent | 6f5fe96a13ac9ed87312da13ce0841b5a44f6e20 (diff) | |
download | libgphoto2-825a2cad3f97a1583a9158830331625ec3a86041.tar.gz |
bit of cleanup and also error checking
-rw-r--r-- | camlibs/kodak/ez200/ez200.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/camlibs/kodak/ez200/ez200.c b/camlibs/kodak/ez200/ez200.c index ea8e4f095..422a8479c 100644 --- a/camlibs/kodak/ez200/ez200.c +++ b/camlibs/kodak/ez200/ez200.c @@ -119,15 +119,17 @@ ez200_get_picture_size (GPPort *port, int n) { static int ez200_read_data (GPPort *port, char *data, int size) { int MAX_BULK = 0x1000; + int ret; /* Read Data by blocks */ while(size > 0) { int len = (size>MAX_BULK)?MAX_BULK:size; - gp_port_read (port, data, len); + ret = gp_port_read (port, data, len); + if (ret < GP_OK) return ret; data += len; size -= len; } - return 1; + return GP_OK; } static int @@ -137,8 +139,7 @@ ez200_read_picture_data (GPPort *port, char *data, int size, int n) { memset(c,0,sizeof(c)); /* ask picture n transfert */ READ(port, PICTURE, n, 1, c, 3); - ez200_read_data (port, data, size); - return GP_OK; + return ez200_read_data (port, data, size); } @@ -247,7 +248,7 @@ get_file_func (CameraFilesystem *fs, const char *folder, const char *filename, GPContext *context) { Camera *camera = user_data; - int n, len; + int n, len, ret; char *data, *data_start; n = gp_filesystem_number(camera->fs, "/", filename, context); @@ -264,8 +265,10 @@ get_file_func (CameraFilesystem *fs, const char *folder, const char *filename, data_start = data + (HEADER_SIZE - DATA_HEADER_SIZE); GP_DEBUG("data - data_start : %p %p : %lx",data, data_start, (long) (data_start - data)); - ez200_read_picture_data (camera->port, data_start, len, n); - ez200_read_picture_header (camera->port, data); + ret = ez200_read_picture_data (camera->port, data_start, len, n); + if (ret < GP_OK) return ret; + ret = ez200_read_picture_header (camera->port, data); + if (ret < GP_OK) return ret; switch (type) { case GP_FILE_TYPE_PREVIEW: case GP_FILE_TYPE_NORMAL: @@ -325,7 +328,7 @@ camera_init(Camera *camera, GPContext *context) settings.usb.outep = 0x03; break; default: - return ( GP_ERROR ); + return GP_ERROR; } ret = gp_port_set_settings(camera->port,settings); @@ -338,9 +341,8 @@ camera_init(Camera *camera, GPContext *context) /* Tell the CameraFilesystem where to get lists from */ gp_filesystem_set_funcs (camera->fs, &fsfuncs, camera); - camera->pl = malloc (sizeof (CameraPrivateLibrary)); + camera->pl = calloc (sizeof (CameraPrivateLibrary), 1); if (!camera->pl) return GP_ERROR_NO_MEMORY; - memset (camera->pl, 0, sizeof (CameraPrivateLibrary)); /* Connect to the camera */ ez200_init (camera->port, &camera->pl->model, camera->pl->info); |