Xinqi Bao's Git

vol_perc: return zero if the value of max is set to zero
[slstatus.git] / slstatus.c
index fd27570..ba7f95a 100644 (file)
@@ -88,8 +88,9 @@ smprintf(const char *fmt, ...)
        va_end(ap);
 
        ret = malloc(++len);
-       if (ret == NULL)
+       if (ret == NULL) {
                err(1, "malloc");
+       }
 
        va_start(ap, fmt);
        vsnprintf(ret, len, fmt, ap);
@@ -500,7 +501,10 @@ vol_perc(const char *card)
        snd_mixer_selem_id_free(s_elem);
        snd_mixer_close(handle);
 
-       return smprintf("%d%%", ((uint_fast16_t)(vol * 100) / max));
+       if (max == 0)
+               return smprintf("%d%%", 0);
+       else
+               return smprintf("%d%%", ((uint_fast16_t)(vol * 100) / max));
 }
 
 static char *