diff options
Diffstat (limited to 'libgphoto2_port')
-rw-r--r-- | libgphoto2_port/vusb/vcamera.c | 10 | ||||
-rw-r--r-- | libgphoto2_port/vusb/vcamera.h | 3 |
2 files changed, 13 insertions, 0 deletions
diff --git a/libgphoto2_port/vusb/vcamera.c b/libgphoto2_port/vusb/vcamera.c index 1dc45baaf..849401303 100644 --- a/libgphoto2_port/vusb/vcamera.c +++ b/libgphoto2_port/vusb/vcamera.c @@ -1797,6 +1797,7 @@ static int vcam_exit(vcamera* cam) { } static int vcam_open(vcamera* cam, const char *port) { +#ifdef FUZZING char *s = strchr(port,':'); if (s) { @@ -1819,15 +1820,18 @@ static int vcam_open(vcamera* cam, const char *port) { } */ } +#endif return GP_OK; } static int vcam_close(vcamera* cam) { +#ifdef FUZZING if (cam->fuzzf) { fclose (cam->fuzzf); cam->fuzzf = NULL; cam->fuzzpending = 0; } +#endif free (cam->inbulk); free (cam->outbulk); return GP_OK; @@ -1935,6 +1939,8 @@ static int vcam_read(vcamera*cam, int ep, unsigned char *data, int bytes) { unsigned int toread = bytes; +#ifdef FUZZING + /* here we are not using the virtual ptp camera, but just read from a file, or write to it. */ if (cam->fuzzf) { unsigned int hasread; @@ -1985,6 +1991,7 @@ vcam_read(vcamera*cam, int ep, unsigned char *data, int bytes) { return toread; } } +#endif /* FUZZING */ /* Emulated PTP camera stuff */ @@ -2079,11 +2086,14 @@ vcam_readint(vcamera*cam, unsigned char *data, int bytes, int timeout) { struct ptp_interrupt *pint; if (!first_interrupt) { +#ifdef FUZZING #ifndef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION usleep (timeout*1000); #endif + /* this emulates plugged out devices during fuzzing */ if (cam->fuzzf && feof(cam->fuzzf)) return GP_ERROR_IO; +#endif /* FUZZING */ return GP_ERROR_TIMEOUT; } gettimeofday (&now, NULL); diff --git a/libgphoto2_port/vusb/vcamera.h b/libgphoto2_port/vusb/vcamera.h index e15a27f61..ccfce1688 100644 --- a/libgphoto2_port/vusb/vcamera.h +++ b/libgphoto2_port/vusb/vcamera.h @@ -22,6 +22,7 @@ #ifndef IOLIBS_VUSB_VCAMERA_H #define IOLIBS_VUSB_VCAMERA_H +#undef FUZZING #undef FUZZ_PTP #include <stdio.h> @@ -67,11 +68,13 @@ typedef struct vcamera { unsigned int shutterspeed; unsigned int fnumber; +#ifdef FUZZING int fuzzmode; #define FUZZMODE_PROTOCOL 0 #define FUZZMODE_NORMAL 1 FILE* fuzzf; unsigned int fuzzpending; +#endif /* FUZZING */ } vcamera; vcamera *vcamera_new(vcameratype); |