summaryrefslogtreecommitdiff
path: root/audio/mserv/patches/patch-ak
blob: 5db691ee103ee01f3d00f3ac0801d1fe6551d2ff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
$NetBSD: patch-ak,v 1.2 2002/10/03 15:46:58 abs Exp $

--- mserv/mserv.c.orig	Sat Jul 15 18:01:15 2000
+++ mserv/mserv.c
@@ -2098,13 +2098,13 @@ static t_track *mserv_loadtrk(const char
       } else {
 	if (id3tag.present) {
 	  if (newinfofile) {
-	    strncpy(author, id3tag.artist, AUTHORLEN);
-	    author[AUTHORLEN] = '\0';
-	    strncpy(name, id3tag.title, NAMELEN);
-	    name[NAMELEN] = '\0';
+	    strncpy(author, id3tag.artist, sizeof(id3tag.artist) - 1);
+	    author[sizeof(id3tag.artist) - 1] = '\0';
+	    strncpy(name, id3tag.title, sizeof(id3tag.title) - 1);
+	    name[sizeof(id3tag.title) - 1] = '\0';
 	    year = atoi(id3tag.year);
-	    strncpy(genres, id3tag.genre, GENRESLEN);
-	    genres[GENRESLEN] = '\0';
+	    strncpy(genres, id3tag.genre, sizeof(id3tag.genre) - 1);
+	    genres[sizeof(id3tag.genre) - 1] = '\0';
 	    mserv_strtoprintable(author);
 	    mserv_strtoprintable(name);
 	    mserv_strtoprintable(genres);
@@ -3370,7 +3370,13 @@ int mserv_setmixer(t_client *cl, int wha
 	mserv_response(cl, "IOCTLWR", NULL);
 	return -1;
       }
-      newval = newval & 0xFF;
+      if (ioctl(mixer_fd, MIXER_READ(what), &newval) == -1) {
+        close(mixer_fd);
+        perror("iotcl read");
+        mserv_response(cl, "IOCTLRD", 0);
+        return -1;
+      }
+      newval = newval & 0xff;
       if (type == 0 || newval != curval)
 	break;
       param++;