From 4d7b36a0b59ec1c9d2aad42d1859dbbd7a88ffc6 Mon Sep 17 00:00:00 2001 From: Bert Vermeulen Date: Wed, 23 Jul 2014 12:32:35 +0200 Subject: [PATCH] fx2lafw: Check for valid samplerate before setting. --- src/hardware/fx2lafw/api.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) 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);