]> git.alsa-project.org Git - alsa-utils.git/commitdiff
Avoid pointer arithmetic on `void *`
authorMichael Forney <mforney@mforney.org>
Wed, 5 Feb 2020 08:12:19 +0000 (00:12 -0800)
committerTakashi Iwai <tiwai@suse.de>
Mon, 10 Feb 2020 11:38:52 +0000 (12:38 +0100)
The pointer operand to the binary `+` operator must be to a complete
object type.

Signed-off-by: Michael Forney <mforney@mforney.org>
Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
aplay/aplay.c
axfer/xfer-libasound-irq-mmap.c
axfer/xfer-libasound-timer-mmap.c
bat/common.c
seq/aplaymidi/aplaymidi.c

index 908093c45c9046aaba5c2303462da82cc7c99b81..08395f69528791780e514d71c184c2106ed47d84 100644 (file)
@@ -442,7 +442,7 @@ static ssize_t xwrite(int fd, const void *buf, size_t count)
        size_t offset = 0;
 
        while (offset < count) {
-               written = write(fd, buf + offset, count - offset);
+               written = write(fd, (char *)buf + offset, count - offset);
                if (written <= 0)
                        return written;
 
@@ -1210,7 +1210,7 @@ static int test_au(int fd, void *buffer)
        hwparams.channels = BE_INT(ap->channels);
        if (hwparams.channels < 1 || hwparams.channels > 256)
                return -1;
-       if ((size_t)safe_read(fd, buffer + sizeof(AuHeader), BE_INT(ap->hdr_size) - sizeof(AuHeader)) != BE_INT(ap->hdr_size) - sizeof(AuHeader)) {
+       if ((size_t)safe_read(fd, (char *)buffer + sizeof(AuHeader), BE_INT(ap->hdr_size) - sizeof(AuHeader)) != BE_INT(ap->hdr_size) - sizeof(AuHeader)) {
                error(_("read error"));
                prg_exit(EXIT_FAILURE);
        }
index a13b3c3003541bf9f6f46e4ced74c39daadc1460..386e741de7332a67b2d565f84573f257fb73cbe6 100644 (file)
@@ -146,9 +146,10 @@ static int irq_mmap_process_frames(struct libasound_state *state,
        // TODO: Perhaps, the complex layout can be supported as a variation of
        // vector type. However, there's no driver with this layout.
        if (layout->vector == NULL) {
-               frame_buf = areas[0].addr;
-               frame_buf += snd_pcm_frames_to_bytes(state->handle,
-                                                    frame_offset);
+               char *buf;
+               buf = areas[0].addr;
+               buf += snd_pcm_frames_to_bytes(state->handle, frame_offset);
+               frame_buf = buf;
        } else {
                int i;
                for (i = 0; i < layout->samples_per_frame; ++i) {
index 1c642fe58b287a6c035ff59e67e2084ba1e6f843..ba26e2995f5f23885768855ffc4cafa89cbfd640 100644 (file)
@@ -100,8 +100,8 @@ static void *get_buffer(struct libasound_state *state,
 
        if (layout->vector == NULL) {
                char *buf;
-               buf = areas[0].addr + snd_pcm_frames_to_bytes(state->handle,
-                                                             frame_offset);
+               buf = areas[0].addr;
+               buf += snd_pcm_frames_to_bytes(state->handle, frame_offset);
                frame_buf = buf;
        } else {
                int i;
index d3d1f285449cd70366c927485aa8f3e702ff41c9..339e749fd74aa8768df4ea394ed1aeccb5801e54 100644 (file)
@@ -231,7 +231,7 @@ int generate_input_data(struct bat *bat, void *buffer, int bytes, int frames)
                load = 0;
 
                while (1) {
-                       err = fread(buffer + load, 1, bytes - load, bat->fp);
+                       err = fread((char *)buffer + load, 1, bytes - load, bat->fp);
                        if (0 == err) {
                                if (feof(bat->fp)) {
                                        fprintf(bat->log,
index 12d6fac3b0dc1e9b3866d68d0f54699cb206add7..b086e7015aa2e827d49aebb4f9c70b0fddf50676 100644 (file)
@@ -633,7 +633,7 @@ static void handle_big_sysex(snd_seq_event_t *ev)
                check_snd("sync output", err);
                if (sleep(1))
                        fatal("aborted");
-               ev->data.ext.ptr += MIDI_BYTES_PER_SEC;
+               ev->data.ext.ptr = (char *)ev->data.ext.ptr + MIDI_BYTES_PER_SEC;
                length -= MIDI_BYTES_PER_SEC;
        }
        ev->data.ext.len = length;