tinyalsa: verify mixer control values

Many kernels don't have proper range checking on
ALSA controls, which can lead to a kernel panic.
Let's cut it off here.

Change-Id: If3b51634f550611d1605d7203d63aca5e683e0aa
diff --git a/mixer.c b/mixer.c
index c4e6765..9e7eec0 100644
--- a/mixer.c
+++ b/mixer.c
@@ -419,10 +419,15 @@
         break;
 
     case SNDRV_CTL_ELEM_TYPE_INTEGER:
+        if (value > mixer_ctl_get_range_max(ctl) ||
+            value < mixer_ctl_get_range_min(ctl))
+            return -EINVAL;
         ev.value.integer.value[id] = value;
         break;
 
     case SNDRV_CTL_ELEM_TYPE_ENUMERATED:
+        if (value < 0 || value >= mixer_ctl_get_num_enums(ctl))
+            return -EINVAL;
         ev.value.enumerated.item[id] = value;
         break;