From: Bert Vermeulen Date: Wed, 23 Jul 2014 10:32:35 +0000 (+0200) Subject: fx2lafw: Check for valid samplerate before setting. X-Git-Tag: libsigrok-0.4.0~1216 X-Git-Url: http://sigrok.org/gitweb/?a=commitdiff_plain;h=4d7b36a0b59ec1c9d2aad42d1859dbbd7a88ffc6;p=libsigrok.git fx2lafw: Check for valid samplerate before setting. --- diff --git a/src/hardware/fx2lafw/api.c b/src/hardware/fx2lafw/api.c index 3242afce..d4643ff7 100644 --- a/src/hardware/fx2lafw/api.c +++ b/src/hardware/fx2lafw/api.c @@ -428,6 +428,8 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi, const struct sr_channel_group *cg) { struct dev_context *devc; + uint64_t arg; + unsigned int i; int ret; (void)cg; @@ -445,7 +447,15 @@ static int config_set(int id, GVariant *data, const struct sr_dev_inst *sdi, switch (id) { case SR_CONF_SAMPLERATE: - devc->cur_samplerate = g_variant_get_uint64(data); + arg = g_variant_get_uint64(data); + for (i = 0; i < ARRAY_SIZE(samplerates); i++) { + if (samplerates[i] == arg) { + devc->cur_samplerate = arg; + break; + } + } + if (i == ARRAY_SIZE(samplerates)) + ret = SR_ERR_ARG; break; case SR_CONF_LIMIT_SAMPLES: devc->limit_samples = g_variant_get_uint64(data);