]> sigrok.org Git - libsigrok.git/commitdiff
fx2lafw: Check for valid samplerate before setting.
authorBert Vermeulen <redacted>
Wed, 23 Jul 2014 10:32:35 +0000 (12:32 +0200)
committerBert Vermeulen <redacted>
Wed, 23 Jul 2014 10:32:35 +0000 (12:32 +0200)
src/hardware/fx2lafw/api.c

index 3242afcead486cb01dc4a7490d37101f6f4a4871..d4643ff760f491e2269602000345f0739c5e6511 100644 (file)
@@ -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);