Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d1913e39 authored by Peter Hurley's avatar Peter Hurley Committed by Greg Kroah-Hartman
Browse files

n_tty: Fix type mismatches in receive_buf raw copy

parent 6f9b028a
Loading
Loading
Loading
Loading
+17 −14
Original line number Diff line number Diff line
@@ -1444,24 +1444,27 @@ static void __receive_buf(struct tty_struct *tty, const unsigned char *cp,
	struct n_tty_data *ldata = tty->disc_data;
	const unsigned char *p;
	char *f, flags = TTY_NORMAL;
	int	i;
	char	buf[64];

	if (ldata->real_raw) {
		i = min(N_TTY_BUF_SIZE - read_cnt(ldata),
			N_TTY_BUF_SIZE - (ldata->read_head & (N_TTY_BUF_SIZE - 1)));
		i = min(count, i);
		memcpy(read_buf_addr(ldata, ldata->read_head), cp, i);
		ldata->read_head += i;
		cp += i;
		count -= i;

		i = min(N_TTY_BUF_SIZE - read_cnt(ldata),
			N_TTY_BUF_SIZE - (ldata->read_head & (N_TTY_BUF_SIZE - 1)));
		i = min(count, i);
		memcpy(read_buf_addr(ldata, ldata->read_head), cp, i);
		ldata->read_head += i;
		size_t n, head;

		head = ldata->read_head & (N_TTY_BUF_SIZE - 1);
		n = N_TTY_BUF_SIZE - max(read_cnt(ldata), head);
		n = min_t(size_t, count, n);
		memcpy(read_buf_addr(ldata, head), cp, n);
		ldata->read_head += n;
		cp += n;
		count -= n;

		head = ldata->read_head & (N_TTY_BUF_SIZE - 1);
		n = N_TTY_BUF_SIZE - max(read_cnt(ldata), head);
		n = min_t(size_t, count, n);
		memcpy(read_buf_addr(ldata, head), cp, n);
		ldata->read_head += n;
	} else {
		int i;

		for (i = count, p = cp, f = fp; i; i--, p++) {
			if (f)
				flags = *f++;