diff -upr alsa-lib-1.1.7/src/pcm/interval_inline.h alsa-lib-1.1.7/src/pcm/interval_inline.h
--- alsa-lib-1.1.7/src/pcm/interval_inline.h	2018-10-16 10:08:35.000000000 +0200
+++ alsa-lib-1.1.7/src/pcm/interval_inline.h	2018-10-24 17:33:10.000000000 +0200
@@ -51,12 +51,14 @@ INTERVAL_INLINE int snd_interval_single(
 {
 	assert(!snd_interval_empty(i));
 	return (i->min == i->max || 
-		(i->min + 1 == i->max && i->openmax));
+		(i->min + 1 == i->max && (i->openmin || i->openmax)));
 }
 
 INTERVAL_INLINE int snd_interval_value(const snd_interval_t *i)
 {
 	assert(snd_interval_single(i));
+	if (i->openmin && !i->openmax)
+		return i->max;
 	return i->min;
 }