summaryrefslogtreecommitdiff
path: root/camlibs/canon
diff options
context:
space:
mode:
authorEliot Blennerhassett <eliot@blennerhassett.gen.nz>2017-01-04 18:23:14 +1300
committerEliot Blennerhassett <eliot@blennerhassett.gen.nz>2017-01-04 18:23:14 +1300
commit21f7345c47c8803d479aa8667142b9a331eafa4b (patch)
treecc47bee239125fa4be1b4782d1a20397dd802803 /camlibs/canon
parentbd80abb28413fb3a9b761ea48cfe0474de575296 (diff)
downloadlibgphoto2-21f7345c47c8803d479aa8667142b9a331eafa4b.tar.gz
camlibs: canon_int_get_zoom - work with shorter response from S45
Relax datalen check so it accepts the minimum reqired for referenced data (15th element). Canon S45 returns 16 bytes for this query, and failed the previous requirement for 28 bytes returned.
Diffstat (limited to 'camlibs/canon')
-rw-r--r--camlibs/canon/canon.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/camlibs/canon/canon.c b/camlibs/canon/canon.c
index 6ab65b7b2..1b482d39d 100644
--- a/camlibs/canon/canon.c
+++ b/camlibs/canon/canon.c
@@ -2050,7 +2050,8 @@ canon_int_set_zoom (Camera *camera, unsigned char zoom_level,
* @zoom_max: pointer to hold zoom upper bound
* @context: context for error reporting
*
- * Gets the camera's zoom. Only tested for G1 via USB.
+ * Gets the camera's zoom.
+ * Tested only for G1 and S45 via USB.
*
* Returns: gphoto2 error code
*
@@ -2088,7 +2089,7 @@ canon_int_get_zoom (Camera *camera,
msg = canon_usb_dialogue ( camera,
CANON_USB_FUNCTION_CONTROL_CAMERA,
&datalen, payload, payloadlen );
- if ( msg == NULL || datalen != 0x1c) {
+ if ( msg == NULL || datalen < 15) {
/* ERROR */
GP_DEBUG ("%s datalen=%x",
desc, datalen);