From 2ac009c7d40d0bcbb71a9dbf7e44828752d1e79b Mon Sep 17 00:00:00 2001 From: Marcus Meissner Date: Sat, 30 Aug 2014 10:28:11 +0000 Subject: [PATCH] add a safety net on potential endless loops. git-svn-id: https://svn.code.sf.net/p/gphoto/code/trunk/libgphoto2@15164 67ed7778-7388-44ab-90cf-0a291f65f57c --- camlibs/ptp2/library.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/camlibs/ptp2/library.c b/camlibs/ptp2/library.c index 7ab982e8c..a0f816b89 100644 --- a/camlibs/ptp2/library.c +++ b/camlibs/ptp2/library.c @@ -2494,20 +2494,23 @@ camera_nikon_capture (Camera *camera, CameraCaptureType type, CameraFilePath *pa _("Failed to enable liveview on a Nikon 1, but it is required for capture")); if (ptp_operation_issupported(params, PTP_OC_NIKON_InitiateCaptureRecInMedia)) { + int loops = 100; do { ret = ptp_nikon_capture2(params,af,sdram); - } while (ret == PTP_RC_DeviceBusy); + } while ((ret == PTP_RC_DeviceBusy) && loops--); goto capturetriggered; } if (!params->inliveview && ptp_operation_issupported(params,PTP_OC_NIKON_AfCaptureSDRAM)) { + int loops = 100; do { ret = ptp_nikon_capture_sdram(params); - } while (ret == PTP_RC_DeviceBusy); + } while ((ret == PTP_RC_DeviceBusy) && (loops--)); } else { + int loops = 100; do { ret = ptp_nikon_capture(params, 0xffffffff); - } while (ret == PTP_RC_DeviceBusy); + } while ((ret == PTP_RC_DeviceBusy) && (loops--)); } capturetriggered: