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++;
|