From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:33456) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAlEr-0006DW-Ih for qemu-devel@nongnu.org; Thu, 11 Oct 2018 20:23:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAlEo-0005l4-IL for qemu-devel@nongnu.org; Thu, 11 Oct 2018 20:23:33 -0400 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 12 Oct 2018 02:22:13 +0200 Message-Id: <20181012002217.2864-8-philmd@redhat.com> In-Reply-To: <20181012002217.2864-1-philmd@redhat.com> References: <20181012002217.2864-1-philmd@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH v2 07/11] chardev: Let IOReadHandler use unsigned type List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini , Prasad J Pandit Cc: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , qemu-devel@nongnu.org, Amit Shah , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Andrzej Zaborowski , Peter Maydell , "Edgar E. Iglesias" , Alistair Francis , Antony Pavlov , Igor Mitsyanko , Fabien Chouteau , Peter Chubb , Alberto Garcia , Michael Walle , Thomas Huth , Cornelia Huck , Christian Borntraeger , Alexander Graf , "Michael S. Tsirkin" , David Gibson , Stefano Stabellini , Anthony Perard , Corey Minyard , Michael Clark , Palmer Dabbelt , Sagar Karandikar , Bastian Koppelmann , Gerd Hoffmann , Samuel Thibault , Markus Armbruster , "Dr. David Alan Gilbert" , Zhang Chen , Li Zhijian , Jason Wang , Jan Kiszka , Laurent Vivier , Max Filippov , "open list:PXA2XX" , "open list:S390 Virtio-ccw" , "open list:sPAPR" , "open list:X86" The number of bytes can not be negative nor zero. Fixed 2 format string: - hw/char/spapr_vty.c - hw/usb/ccid-card-passthru.c Suggested-by: Paolo Bonzini Signed-off-by: Philippe Mathieu-Daud=C3=A9 Acked-by: Alberto Garcia --- backends/rng-egd.c | 2 +- chardev/char-mux.c | 2 +- gdbstub.c | 2 +- hw/arm/pxa2xx.c | 2 +- hw/arm/strongarm.c | 3 ++- hw/char/bcm2835_aux.c | 2 +- hw/char/cadence_uart.c | 2 +- hw/char/cmsdk-apb-uart.c | 2 +- hw/char/digic-uart.c | 2 +- hw/char/escc.c | 2 +- hw/char/etraxfs_ser.c | 2 +- hw/char/exynos4210_uart.c | 3 ++- hw/char/grlib_apbuart.c | 2 +- hw/char/imx_serial.c | 2 +- hw/char/ipoctal232.c | 2 +- hw/char/lm32_juart.c | 2 +- hw/char/lm32_uart.c | 2 +- hw/char/mcf_uart.c | 2 +- hw/char/milkymist-uart.c | 2 +- hw/char/pl011.c | 2 +- hw/char/sclpconsole-lm.c | 2 +- hw/char/sclpconsole.c | 2 +- hw/char/serial.c | 4 ++-- hw/char/sh_serial.c | 2 +- hw/char/spapr_vty.c | 4 ++-- hw/char/stm32f2xx_usart.c | 3 ++- hw/char/terminal3270.c | 2 +- hw/char/virtio-console.c | 2 +- hw/char/xen_console.c | 2 +- hw/char/xilinx_uartlite.c | 2 +- hw/ipmi/ipmi_bmc_extern.c | 2 +- hw/misc/ivshmem.c | 4 ++-- hw/riscv/riscv_htif.c | 2 +- hw/riscv/sifive_uart.c | 2 +- hw/usb/ccid-card-passthru.c | 4 ++-- hw/usb/dev-serial.c | 2 +- hw/usb/redirect.c | 2 +- include/qemu/main-loop.h | 2 +- monitor.c | 4 ++-- net/colo-compare.c | 4 ++-- net/filter-mirror.c | 2 +- net/slirp.c | 2 +- qtest.c | 2 +- target/xtensa/xtensa-semi.c | 2 +- 44 files changed, 53 insertions(+), 50 deletions(-) diff --git a/backends/rng-egd.c b/backends/rng-egd.c index d2b9ce6cbf..b51c01f664 100644 --- a/backends/rng-egd.c +++ b/backends/rng-egd.c @@ -61,7 +61,7 @@ static int rng_egd_chr_can_read(void *opaque) return size; } =20 -static void rng_egd_chr_read(void *opaque, const uint8_t *buf, int size) +static void rng_egd_chr_read(void *opaque, const uint8_t *buf, size_t si= ze) { RngEgd *s =3D RNG_EGD(opaque); size_t buf_offset =3D 0; diff --git a/chardev/char-mux.c b/chardev/char-mux.c index 3ca732d3a8..d8d6eaa646 100644 --- a/chardev/char-mux.c +++ b/chardev/char-mux.c @@ -209,7 +209,7 @@ static int mux_chr_can_read(void *opaque) return 0; } =20 -static void mux_chr_read(void *opaque, const uint8_t *buf, int size) +static void mux_chr_read(void *opaque, const uint8_t *buf, size_t size) { Chardev *chr =3D CHARDEV(opaque); MuxChardev *d =3D MUX_CHARDEV(opaque); diff --git a/gdbstub.c b/gdbstub.c index bbbb1cfcc1..a2fc3682ce 100644 --- a/gdbstub.c +++ b/gdbstub.c @@ -1923,7 +1923,7 @@ static int gdb_chr_can_receive(void *opaque) return MAX_PACKET_LENGTH; } =20 -static void gdb_chr_receive(void *opaque, const uint8_t *buf, int size) +static void gdb_chr_receive(void *opaque, const uint8_t *buf, size_t siz= e) { int i; =20 diff --git a/hw/arm/pxa2xx.c b/hw/arm/pxa2xx.c index f598a1c053..75b6aa2772 100644 --- a/hw/arm/pxa2xx.c +++ b/hw/arm/pxa2xx.c @@ -1929,7 +1929,7 @@ static int pxa2xx_fir_is_empty(void *opaque) return (s->rx_len < 64); } =20 -static void pxa2xx_fir_rx(void *opaque, const uint8_t *buf, int size) +static void pxa2xx_fir_rx(void *opaque, const uint8_t *buf, size_t size) { PXA2xxFIrState *s =3D (PXA2xxFIrState *) opaque; if (!(s->control[0] & (1 << 4))) /* RXE */ diff --git a/hw/arm/strongarm.c b/hw/arm/strongarm.c index ec2627374d..40db4e5e0a 100644 --- a/hw/arm/strongarm.c +++ b/hw/arm/strongarm.c @@ -1072,7 +1072,8 @@ static int strongarm_uart_can_receive(void *opaque) return 1; } =20 -static void strongarm_uart_receive(void *opaque, const uint8_t *buf, int= size) +static void strongarm_uart_receive(void *opaque, const uint8_t *buf, + size_t size) { StrongARMUARTState *s =3D opaque; int i; diff --git a/hw/char/bcm2835_aux.c b/hw/char/bcm2835_aux.c index 0364596c55..cb26df40f8 100644 --- a/hw/char/bcm2835_aux.c +++ b/hw/char/bcm2835_aux.c @@ -235,7 +235,7 @@ static void bcm2835_aux_put_fifo(void *opaque, uint8_= t value) bcm2835_aux_update(s); } =20 -static void bcm2835_aux_receive(void *opaque, const uint8_t *buf, int si= ze) +static void bcm2835_aux_receive(void *opaque, const uint8_t *buf, size_t= size) { bcm2835_aux_put_fifo(opaque, *buf); } diff --git a/hw/char/cadence_uart.c b/hw/char/cadence_uart.c index fbdbd463bb..eb5cc974a1 100644 --- a/hw/char/cadence_uart.c +++ b/hw/char/cadence_uart.c @@ -332,7 +332,7 @@ static void uart_write_tx_fifo(CadenceUARTState *s, c= onst uint8_t *buf, cadence_uart_xmit(NULL, G_IO_OUT, s); } =20 -static void uart_receive(void *opaque, const uint8_t *buf, int size) +static void uart_receive(void *opaque, const uint8_t *buf, size_t size) { CadenceUARTState *s =3D opaque; uint32_t ch_mode =3D s->r[R_MR] & UART_MR_CHMODE; diff --git a/hw/char/cmsdk-apb-uart.c b/hw/char/cmsdk-apb-uart.c index ddfbb25c24..774986d88d 100644 --- a/hw/char/cmsdk-apb-uart.c +++ b/hw/char/cmsdk-apb-uart.c @@ -119,7 +119,7 @@ static int uart_can_receive(void *opaque) return 0; } =20 -static void uart_receive(void *opaque, const uint8_t *buf, int size) +static void uart_receive(void *opaque, const uint8_t *buf, size_t size) { CMSDKAPBUART *s =3D CMSDK_APB_UART(opaque); =20 diff --git a/hw/char/digic-uart.c b/hw/char/digic-uart.c index ccc75eaa4d..0f41a23b54 100644 --- a/hw/char/digic-uart.c +++ b/hw/char/digic-uart.c @@ -119,7 +119,7 @@ static int uart_can_rx(void *opaque) return !(s->reg_st & ST_RX_RDY); } =20 -static void uart_rx(void *opaque, const uint8_t *buf, int size) +static void uart_rx(void *opaque, const uint8_t *buf, size_t size) { DigicUartState *s =3D opaque; =20 diff --git a/hw/char/escc.c b/hw/char/escc.c index 628f5f81f7..e655b86273 100644 --- a/hw/char/escc.c +++ b/hw/char/escc.c @@ -601,7 +601,7 @@ static void serial_receive_break(ESCCChannelState *s) escc_update_irq(s); } =20 -static void serial_receive1(void *opaque, const uint8_t *buf, int size) +static void serial_receive1(void *opaque, const uint8_t *buf, size_t siz= e) { ESCCChannelState *s =3D opaque; serial_receive_byte(s, buf[0]); diff --git a/hw/char/etraxfs_ser.c b/hw/char/etraxfs_ser.c index a184026410..79cd8d2dc1 100644 --- a/hw/char/etraxfs_ser.c +++ b/hw/char/etraxfs_ser.c @@ -166,7 +166,7 @@ static Property etraxfs_ser_properties[] =3D { DEFINE_PROP_END_OF_LIST(), }; =20 -static void serial_receive(void *opaque, const uint8_t *buf, int size) +static void serial_receive(void *opaque, const uint8_t *buf, size_t size= ) { ETRAXSerial *s =3D opaque; int i; diff --git a/hw/char/exynos4210_uart.c b/hw/char/exynos4210_uart.c index a5a285655f..5fdf5b1f37 100644 --- a/hw/char/exynos4210_uart.c +++ b/hw/char/exynos4210_uart.c @@ -495,7 +495,8 @@ static int exynos4210_uart_can_receive(void *opaque) } =20 =20 -static void exynos4210_uart_receive(void *opaque, const uint8_t *buf, in= t size) +static void exynos4210_uart_receive(void *opaque, const uint8_t *buf, + size_t size) { Exynos4210UartState *s =3D (Exynos4210UartState *)opaque; int i; diff --git a/hw/char/grlib_apbuart.c b/hw/char/grlib_apbuart.c index bac11bec58..d370609a52 100644 --- a/hw/char/grlib_apbuart.c +++ b/hw/char/grlib_apbuart.c @@ -137,7 +137,7 @@ static int grlib_apbuart_can_receive(void *opaque) return FIFO_LENGTH - uart->len; } =20 -static void grlib_apbuart_receive(void *opaque, const uint8_t *buf, int = size) +static void grlib_apbuart_receive(void *opaque, const uint8_t *buf, size= _t size) { UART *uart =3D opaque; =20 diff --git a/hw/char/imx_serial.c b/hw/char/imx_serial.c index 1e363190e3..b9fdfaeb38 100644 --- a/hw/char/imx_serial.c +++ b/hw/char/imx_serial.c @@ -315,7 +315,7 @@ static void imx_put_data(void *opaque, uint32_t value= ) imx_update(s); } =20 -static void imx_receive(void *opaque, const uint8_t *buf, int size) +static void imx_receive(void *opaque, const uint8_t *buf, size_t size) { imx_put_data(opaque, *buf); } diff --git a/hw/char/ipoctal232.c b/hw/char/ipoctal232.c index 5e09caf851..08e3f9e45f 100644 --- a/hw/char/ipoctal232.c +++ b/hw/char/ipoctal232.c @@ -468,7 +468,7 @@ static int hostdev_can_receive(void *opaque) return ch->rx_enabled ? available_bytes : 0; } =20 -static void hostdev_receive(void *opaque, const uint8_t *buf, int size) +static void hostdev_receive(void *opaque, const uint8_t *buf, size_t siz= e) { SCC2698Channel *ch =3D opaque; IPOctalState *dev =3D ch->ipoctal; diff --git a/hw/char/lm32_juart.c b/hw/char/lm32_juart.c index d75c835ad2..ecb61ee086 100644 --- a/hw/char/lm32_juart.c +++ b/hw/char/lm32_juart.c @@ -88,7 +88,7 @@ void lm32_juart_set_jrx(DeviceState *d, uint32_t jtx) s->jrx &=3D ~JRX_FULL; } =20 -static void juart_rx(void *opaque, const uint8_t *buf, int size) +static void juart_rx(void *opaque, const uint8_t *buf, size_t size) { LM32JuartState *s =3D opaque; =20 diff --git a/hw/char/lm32_uart.c b/hw/char/lm32_uart.c index c4a3b9b275..ee0bf8e117 100644 --- a/hw/char/lm32_uart.c +++ b/hw/char/lm32_uart.c @@ -211,7 +211,7 @@ static const MemoryRegionOps uart_ops =3D { }, }; =20 -static void uart_rx(void *opaque, const uint8_t *buf, int size) +static void uart_rx(void *opaque, const uint8_t *buf, size_t size) { LM32UartState *s =3D opaque; =20 diff --git a/hw/char/mcf_uart.c b/hw/char/mcf_uart.c index 787f985db6..e126860b46 100644 --- a/hw/char/mcf_uart.c +++ b/hw/char/mcf_uart.c @@ -274,7 +274,7 @@ static int mcf_uart_can_receive(void *opaque) return s->rx_enabled && (s->sr & MCF_UART_FFULL) =3D=3D 0; } =20 -static void mcf_uart_receive(void *opaque, const uint8_t *buf, int size) +static void mcf_uart_receive(void *opaque, const uint8_t *buf, size_t si= ze) { mcf_uart_state *s =3D (mcf_uart_state *)opaque; =20 diff --git a/hw/char/milkymist-uart.c b/hw/char/milkymist-uart.c index 548ee27bca..a10c0957ff 100644 --- a/hw/char/milkymist-uart.c +++ b/hw/char/milkymist-uart.c @@ -158,7 +158,7 @@ static const MemoryRegionOps uart_mmio_ops =3D { .endianness =3D DEVICE_NATIVE_ENDIAN, }; =20 -static void uart_rx(void *opaque, const uint8_t *buf, int size) +static void uart_rx(void *opaque, const uint8_t *buf, size_t size) { MilkymistUartState *s =3D opaque; =20 diff --git a/hw/char/pl011.c b/hw/char/pl011.c index 2aa277fc4f..37973c32ce 100644 --- a/hw/char/pl011.c +++ b/hw/char/pl011.c @@ -260,7 +260,7 @@ static void pl011_put_fifo(void *opaque, uint32_t val= ue) } } =20 -static void pl011_receive(void *opaque, const uint8_t *buf, int size) +static void pl011_receive(void *opaque, const uint8_t *buf, size_t size) { pl011_put_fifo(opaque, *buf); } diff --git a/hw/char/sclpconsole-lm.c b/hw/char/sclpconsole-lm.c index dbc91a1e5b..a04a2a9d80 100644 --- a/hw/char/sclpconsole-lm.c +++ b/hw/char/sclpconsole-lm.c @@ -71,7 +71,7 @@ static int chr_can_read(void *opaque) return 1; } =20 -static void chr_read(void *opaque, const uint8_t *buf, int size) +static void chr_read(void *opaque, const uint8_t *buf, size_t size) { SCLPConsoleLM *scon =3D opaque; =20 diff --git a/hw/char/sclpconsole.c b/hw/char/sclpconsole.c index 1fa16e9055..62395c19f4 100644 --- a/hw/char/sclpconsole.c +++ b/hw/char/sclpconsole.c @@ -59,7 +59,7 @@ static int chr_can_read(void *opaque) } =20 /* Send data from a char device over to the guest */ -static void chr_read(void *opaque, const uint8_t *buf, int size) +static void chr_read(void *opaque, const uint8_t *buf, size_t size) { SCLPConsole *scon =3D opaque; =20 diff --git a/hw/char/serial.c b/hw/char/serial.c index 02463e3388..69baed105b 100644 --- a/hw/char/serial.c +++ b/hw/char/serial.c @@ -105,7 +105,7 @@ do { fprintf(stderr, "serial: " fmt , ## __VA_ARGS__)= ; } while (0) do {} while (0) #endif =20 -static void serial_receive1(void *opaque, const uint8_t *buf, int size); +static void serial_receive1(void *opaque, const uint8_t *buf, size_t siz= e); static void serial_xmit(SerialState *s); =20 static inline void recv_fifo_put(SerialState *s, uint8_t chr) @@ -606,7 +606,7 @@ static int serial_can_receive1(void *opaque) return serial_can_receive(s); } =20 -static void serial_receive1(void *opaque, const uint8_t *buf, int size) +static void serial_receive1(void *opaque, const uint8_t *buf, size_t siz= e) { SerialState *s =3D opaque; =20 diff --git a/hw/char/sh_serial.c b/hw/char/sh_serial.c index 12831561a6..04fdcee328 100644 --- a/hw/char/sh_serial.c +++ b/hw/char/sh_serial.c @@ -327,7 +327,7 @@ static void sh_serial_timeout_int(void *opaque) } } =20 -static void sh_serial_receive1(void *opaque, const uint8_t *buf, int siz= e) +static void sh_serial_receive1(void *opaque, const uint8_t *buf, size_t = size) { sh_serial_state *s =3D opaque; =20 diff --git a/hw/char/spapr_vty.c b/hw/char/spapr_vty.c index 6748334ded..42b4b61cce 100644 --- a/hw/char/spapr_vty.c +++ b/hw/char/spapr_vty.c @@ -28,7 +28,7 @@ static int vty_can_receive(void *opaque) return VTERM_BUFSIZE - (dev->in - dev->out); } =20 -static void vty_receive(void *opaque, const uint8_t *buf, int size) +static void vty_receive(void *opaque, const uint8_t *buf, size_t size) { VIOsPAPRVTYDevice *dev =3D VIO_SPAPR_VTY_DEVICE(opaque); int i; @@ -42,7 +42,7 @@ static void vty_receive(void *opaque, const uint8_t *bu= f, int size) static bool reported; if (!reported) { error_report("VTY input buffer exhausted - characters dr= opped." - " (input size =3D %i)", size); + " (input size =3D %zu)", size); reported =3D true; } break; diff --git a/hw/char/stm32f2xx_usart.c b/hw/char/stm32f2xx_usart.c index 032b5fda13..78bf142678 100644 --- a/hw/char/stm32f2xx_usart.c +++ b/hw/char/stm32f2xx_usart.c @@ -49,7 +49,8 @@ static int stm32f2xx_usart_can_receive(void *opaque) return 0; } =20 -static void stm32f2xx_usart_receive(void *opaque, const uint8_t *buf, in= t size) +static void stm32f2xx_usart_receive(void *opaque, const uint8_t *buf, + size_t size) { STM32F2XXUsartState *s =3D opaque; =20 diff --git a/hw/char/terminal3270.c b/hw/char/terminal3270.c index e9c45e55b1..076516991e 100644 --- a/hw/char/terminal3270.c +++ b/hw/char/terminal3270.c @@ -90,7 +90,7 @@ static gboolean send_timing_mark_cb(gpointer opaque) * As of now, for such case, we simply terminate the connection, * and we should come back here later with a better solution. */ -static void terminal_read(void *opaque, const uint8_t *buf, int size) +static void terminal_read(void *opaque, const uint8_t *buf, size_t size) { Terminal3270 *t =3D opaque; CcwDevice *ccw_dev =3D CCW_DEVICE(t); diff --git a/hw/char/virtio-console.c b/hw/char/virtio-console.c index 2cbe1d4ed5..e3d368b976 100644 --- a/hw/char/virtio-console.c +++ b/hw/char/virtio-console.c @@ -134,7 +134,7 @@ static int chr_can_read(void *opaque) } =20 /* Send data from a char device over to the guest */ -static void chr_read(void *opaque, const uint8_t *buf, int size) +static void chr_read(void *opaque, const uint8_t *buf, size_t size) { VirtConsole *vcon =3D opaque; VirtIOSerialPort *port =3D VIRTIO_SERIAL_PORT(vcon); diff --git a/hw/char/xen_console.c b/hw/char/xen_console.c index 44f7236382..ca90c5c17e 100644 --- a/hw/char/xen_console.c +++ b/hw/char/xen_console.c @@ -122,7 +122,7 @@ static int xencons_can_receive(void *opaque) return ring_free_bytes(con); } =20 -static void xencons_receive(void *opaque, const uint8_t *buf, int len) +static void xencons_receive(void *opaque, const uint8_t *buf, size_t len= ) { struct XenConsole *con =3D opaque; struct xencons_interface *intf =3D con->sring; diff --git a/hw/char/xilinx_uartlite.c b/hw/char/xilinx_uartlite.c index 2a8bc1e497..b1abf8b604 100644 --- a/hw/char/xilinx_uartlite.c +++ b/hw/char/xilinx_uartlite.c @@ -177,7 +177,7 @@ static Property xilinx_uartlite_properties[] =3D { DEFINE_PROP_END_OF_LIST(), }; =20 -static void uart_rx(void *opaque, const uint8_t *buf, int size) +static void uart_rx(void *opaque, const uint8_t *buf, size_t size) { XilinxUARTLite *s =3D opaque; =20 diff --git a/hw/ipmi/ipmi_bmc_extern.c b/hw/ipmi/ipmi_bmc_extern.c index 8c78b9804b..c52f80f771 100644 --- a/hw/ipmi/ipmi_bmc_extern.c +++ b/hw/ipmi/ipmi_bmc_extern.c @@ -312,7 +312,7 @@ static int can_receive(void *opaque) return 1; } =20 -static void receive(void *opaque, const uint8_t *buf, int size) +static void receive(void *opaque, const uint8_t *buf, size_t size) { IPMIBmcExtern *ibe =3D opaque; int i; diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index 8cb17b9dd4..f506479845 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -628,14 +628,14 @@ static int ivshmem_can_receive(void *opaque) return sizeof(s->msg_buf) - s->msg_buffered_bytes; } =20 -static void ivshmem_read(void *opaque, const uint8_t *buf, int size) +static void ivshmem_read(void *opaque, const uint8_t *buf, size_t size) { IVShmemState *s =3D opaque; Error *err =3D NULL; int fd; int64_t msg; =20 - assert(size >=3D 0 && s->msg_buffered_bytes + size <=3D sizeof(s->ms= g_buf)); + assert(s->msg_buffered_bytes + size <=3D sizeof(s->msg_buf)); memcpy((unsigned char *)&s->msg_buf + s->msg_buffered_bytes, buf, si= ze); s->msg_buffered_bytes +=3D size; if (s->msg_buffered_bytes < sizeof(s->msg_buf)) { diff --git a/hw/riscv/riscv_htif.c b/hw/riscv/riscv_htif.c index 4f7b11dc37..2625f5e9e8 100644 --- a/hw/riscv/riscv_htif.c +++ b/hw/riscv/riscv_htif.c @@ -74,7 +74,7 @@ static int htif_can_recv(void *opaque) * Called by the char dev to supply input to HTIF console. * We assume that we will receive one character at a time. */ -static void htif_recv(void *opaque, const uint8_t *buf, int size) +static void htif_recv(void *opaque, const uint8_t *buf, size_t size) { HTIFState *htifstate =3D opaque; =20 diff --git a/hw/riscv/sifive_uart.c b/hw/riscv/sifive_uart.c index b0c3798cf2..d4cbf91b9f 100644 --- a/hw/riscv/sifive_uart.c +++ b/hw/riscv/sifive_uart.c @@ -123,7 +123,7 @@ static const MemoryRegionOps uart_ops =3D { } }; =20 -static void uart_rx(void *opaque, const uint8_t *buf, int size) +static void uart_rx(void *opaque, const uint8_t *buf, size_t size) { SiFiveUARTState *s =3D opaque; =20 diff --git a/hw/usb/ccid-card-passthru.c b/hw/usb/ccid-card-passthru.c index 0a6c657228..b6fa35a4b4 100644 --- a/hw/usb/ccid-card-passthru.c +++ b/hw/usb/ccid-card-passthru.c @@ -270,13 +270,13 @@ static void ccid_card_vscard_drop_connection(Passth= ruState *card) card->vscard_in_pos =3D card->vscard_in_hdr =3D 0; } =20 -static void ccid_card_vscard_read(void *opaque, const uint8_t *buf, int = size) +static void ccid_card_vscard_read(void *opaque, const uint8_t *buf, size= _t size) { PassthruState *card =3D opaque; VSCMsgHeader *hdr; =20 if (card->vscard_in_pos + size > VSCARD_IN_SIZE) { - error_report("no room for data: pos %u + size %d > %" PRId64 ".= " + error_report("no room for data: pos %u + size %zu > %" PRId64 "= ." " dropping connection.", card->vscard_in_pos, size, VSCARD_IN_SIZE); ccid_card_vscard_drop_connection(card); diff --git a/hw/usb/dev-serial.c b/hw/usb/dev-serial.c index 98d1ca3c91..efaeab484d 100644 --- a/hw/usb/dev-serial.c +++ b/hw/usb/dev-serial.c @@ -431,7 +431,7 @@ static int usb_serial_can_read(void *opaque) return RECV_BUF - s->recv_used; } =20 -static void usb_serial_read(void *opaque, const uint8_t *buf, int size) +static void usb_serial_read(void *opaque, const uint8_t *buf, size_t siz= e) { USBSerialState *s =3D opaque; int first_size, start; diff --git a/hw/usb/redirect.c b/hw/usb/redirect.c index 99094a721e..a73076ba78 100644 --- a/hw/usb/redirect.c +++ b/hw/usb/redirect.c @@ -1302,7 +1302,7 @@ static int usbredir_chardev_can_read(void *opaque) return 1 * MiB; } =20 -static void usbredir_chardev_read(void *opaque, const uint8_t *buf, int = size) +static void usbredir_chardev_read(void *opaque, const uint8_t *buf, size= _t size) { USBRedirDevice *dev =3D opaque; =20 diff --git a/include/qemu/main-loop.h b/include/qemu/main-loop.h index e59f9ae1e9..c5a7299266 100644 --- a/include/qemu/main-loop.h +++ b/include/qemu/main-loop.h @@ -167,7 +167,7 @@ void qemu_del_wait_object(HANDLE handle, WaitObjectFu= nc *func, void *opaque); =20 /* async I/O support */ =20 -typedef void IOReadHandler(void *opaque, const uint8_t *buf, int size); +typedef void IOReadHandler(void *opaque, const uint8_t *buf, size_t size= ); =20 /** * IOCanReadHandler: Return the number of bytes that #IOReadHandler can = accept diff --git a/monitor.c b/monitor.c index b9258a7438..12401ec60b 100644 --- a/monitor.c +++ b/monitor.c @@ -4240,14 +4240,14 @@ static void handle_qmp_command(void *opaque, QObj= ect *req, Error *err) qemu_bh_schedule(qmp_dispatcher_bh); } =20 -static void monitor_qmp_read(void *opaque, const uint8_t *buf, int size) +static void monitor_qmp_read(void *opaque, const uint8_t *buf, size_t si= ze) { Monitor *mon =3D opaque; =20 json_message_parser_feed(&mon->qmp.parser, (const char *) buf, size)= ; } =20 -static void monitor_read(void *opaque, const uint8_t *buf, int size) +static void monitor_read(void *opaque, const uint8_t *buf, size_t size) { Monitor *old_mon =3D cur_mon; int i; diff --git a/net/colo-compare.c b/net/colo-compare.c index dd745a491b..433e9ba287 100644 --- a/net/colo-compare.c +++ b/net/colo-compare.c @@ -692,7 +692,7 @@ static int compare_chr_can_read(void *opaque) * Called from the main thread on the primary for packets * arriving over the socket from the primary. */ -static void compare_pri_chr_in(void *opaque, const uint8_t *buf, int siz= e) +static void compare_pri_chr_in(void *opaque, const uint8_t *buf, size_t = size) { CompareState *s =3D COLO_COMPARE(opaque); int ret; @@ -709,7 +709,7 @@ static void compare_pri_chr_in(void *opaque, const ui= nt8_t *buf, int size) * Called from the main thread on the primary for packets * arriving over the socket from the secondary. */ -static void compare_sec_chr_in(void *opaque, const uint8_t *buf, int siz= e) +static void compare_sec_chr_in(void *opaque, const uint8_t *buf, size_t = size) { CompareState *s =3D COLO_COMPARE(opaque); int ret; diff --git a/net/filter-mirror.c b/net/filter-mirror.c index 3a61cf21e8..27b6e52a1d 100644 --- a/net/filter-mirror.c +++ b/net/filter-mirror.c @@ -119,7 +119,7 @@ static int redirector_chr_can_read(void *opaque) return REDIRECTOR_MAX_LEN; } =20 -static void redirector_chr_read(void *opaque, const uint8_t *buf, int si= ze) +static void redirector_chr_read(void *opaque, const uint8_t *buf, size_t= size) { NetFilterState *nf =3D opaque; MirrorState *s =3D FILTER_REDIRECTOR(nf); diff --git a/net/slirp.c b/net/slirp.c index 99884de204..5e864f4a4f 100644 --- a/net/slirp.c +++ b/net/slirp.c @@ -718,7 +718,7 @@ static int guestfwd_can_read(void *opaque) return slirp_socket_can_recv(fwd->slirp, fwd->server, fwd->port); } =20 -static void guestfwd_read(void *opaque, const uint8_t *buf, int size) +static void guestfwd_read(void *opaque, const uint8_t *buf, size_t size) { struct GuestFwd *fwd =3D opaque; slirp_socket_recv(fwd->slirp, fwd->server, fwd->port, buf, size); diff --git a/qtest.c b/qtest.c index 69b9e9962b..0494afdfb3 100644 --- a/qtest.c +++ b/qtest.c @@ -657,7 +657,7 @@ static void qtest_process_inbuf(CharBackend *chr, GSt= ring *inbuf) } } =20 -static void qtest_read(void *opaque, const uint8_t *buf, int size) +static void qtest_read(void *opaque, const uint8_t *buf, size_t size) { CharBackend *chr =3D opaque; =20 diff --git a/target/xtensa/xtensa-semi.c b/target/xtensa/xtensa-semi.c index e389069f0b..241874ea4e 100644 --- a/target/xtensa/xtensa-semi.c +++ b/target/xtensa/xtensa-semi.c @@ -168,7 +168,7 @@ static int sim_console_can_read(void *opaque) return sizeof(p->input.buffer) - p->input.offset; } =20 -static void sim_console_read(void *opaque, const uint8_t *buf, int size) +static void sim_console_read(void *opaque, const uint8_t *buf, size_t si= ze) { XtensaSimConsole *p =3D opaque; size_t copy =3D sizeof(p->input.buffer) - p->input.offset; --=20 2.17.1 From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [PATCH v2 07/11] chardev: Let IOReadHandler use unsigned type Date: Fri, 12 Oct 2018 02:22:13 +0200 Message-ID: <20181012002217.2864-8-philmd@redhat.com> References: <20181012002217.2864-1-philmd@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from all-amaz-eas1.inumbo.com ([34.197.232.57]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gAlEf-0000Lq-AC for xen-devel@lists.xenproject.org; Fri, 12 Oct 2018 00:23:21 +0000 In-Reply-To: <20181012002217.2864-1-philmd@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Paolo Bonzini , Prasad J Pandit Cc: Peter Maydell , Sagar Karandikar , "Michael S. Tsirkin" , Jan Kiszka , Jason Wang , Palmer Dabbelt , qemu-devel@nongnu.org, Markus Armbruster , Max Filippov , Michael Clark , Gerd Hoffmann , "Edgar E. Iglesias" , Stefano Stabellini , Alberto Garcia , Li Zhijian , Alexander Graf , Christian Borntraeger , Antony Pavlov , Anthony Perard , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Laurent Vivier List-Id: xen-devel@lists.xenproject.org VGhlIG51bWJlciBvZiBieXRlcyBjYW4gbm90IGJlIG5lZ2F0aXZlIG5vciB6ZXJvLgoKRml4ZWQg MiBmb3JtYXQgc3RyaW5nOgotIGh3L2NoYXIvc3BhcHJfdnR5LmMKLSBody91c2IvY2NpZC1jYXJk LXBhc3N0aHJ1LmMKClN1Z2dlc3RlZC1ieTogUGFvbG8gQm9uemluaSA8cGJvbnppbmlAcmVkaGF0 LmNvbT4KU2lnbmVkLW9mZi1ieTogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBoaWxtZEByZWRo YXQuY29tPgpBY2tlZC1ieTogQWxiZXJ0byBHYXJjaWEgPGJlcnRvQGlnYWxpYS5jb20+Ci0tLQog YmFja2VuZHMvcm5nLWVnZC5jICAgICAgICAgIHwgMiArLQogY2hhcmRldi9jaGFyLW11eC5jICAg ICAgICAgIHwgMiArLQogZ2Ric3R1Yi5jICAgICAgICAgICAgICAgICAgIHwgMiArLQogaHcvYXJt L3B4YTJ4eC5jICAgICAgICAgICAgIHwgMiArLQogaHcvYXJtL3N0cm9uZ2FybS5jICAgICAgICAg IHwgMyArKy0KIGh3L2NoYXIvYmNtMjgzNV9hdXguYyAgICAgICB8IDIgKy0KIGh3L2NoYXIvY2Fk ZW5jZV91YXJ0LmMgICAgICB8IDIgKy0KIGh3L2NoYXIvY21zZGstYXBiLXVhcnQuYyAgICB8IDIg Ky0KIGh3L2NoYXIvZGlnaWMtdWFydC5jICAgICAgICB8IDIgKy0KIGh3L2NoYXIvZXNjYy5jICAg ICAgICAgICAgICB8IDIgKy0KIGh3L2NoYXIvZXRyYXhmc19zZXIuYyAgICAgICB8IDIgKy0KIGh3 L2NoYXIvZXh5bm9zNDIxMF91YXJ0LmMgICB8IDMgKystCiBody9jaGFyL2dybGliX2FwYnVhcnQu YyAgICAgfCAyICstCiBody9jaGFyL2lteF9zZXJpYWwuYyAgICAgICAgfCAyICstCiBody9jaGFy L2lwb2N0YWwyMzIuYyAgICAgICAgfCAyICstCiBody9jaGFyL2xtMzJfanVhcnQuYyAgICAgICAg fCAyICstCiBody9jaGFyL2xtMzJfdWFydC5jICAgICAgICAgfCAyICstCiBody9jaGFyL21jZl91 YXJ0LmMgICAgICAgICAgfCAyICstCiBody9jaGFyL21pbGt5bWlzdC11YXJ0LmMgICAgfCAyICst CiBody9jaGFyL3BsMDExLmMgICAgICAgICAgICAgfCAyICstCiBody9jaGFyL3NjbHBjb25zb2xl LWxtLmMgICAgfCAyICstCiBody9jaGFyL3NjbHBjb25zb2xlLmMgICAgICAgfCAyICstCiBody9j aGFyL3NlcmlhbC5jICAgICAgICAgICAgfCA0ICsrLS0KIGh3L2NoYXIvc2hfc2VyaWFsLmMgICAg ICAgICB8IDIgKy0KIGh3L2NoYXIvc3BhcHJfdnR5LmMgICAgICAgICB8IDQgKystLQogaHcvY2hh ci9zdG0zMmYyeHhfdXNhcnQuYyAgIHwgMyArKy0KIGh3L2NoYXIvdGVybWluYWwzMjcwLmMgICAg ICB8IDIgKy0KIGh3L2NoYXIvdmlydGlvLWNvbnNvbGUuYyAgICB8IDIgKy0KIGh3L2NoYXIveGVu X2NvbnNvbGUuYyAgICAgICB8IDIgKy0KIGh3L2NoYXIveGlsaW54X3VhcnRsaXRlLmMgICB8IDIg Ky0KIGh3L2lwbWkvaXBtaV9ibWNfZXh0ZXJuLmMgICB8IDIgKy0KIGh3L21pc2MvaXZzaG1lbS5j ICAgICAgICAgICB8IDQgKystLQogaHcvcmlzY3YvcmlzY3ZfaHRpZi5jICAgICAgIHwgMiArLQog aHcvcmlzY3Yvc2lmaXZlX3VhcnQuYyAgICAgIHwgMiArLQogaHcvdXNiL2NjaWQtY2FyZC1wYXNz dGhydS5jIHwgNCArKy0tCiBody91c2IvZGV2LXNlcmlhbC5jICAgICAgICAgfCAyICstCiBody91 c2IvcmVkaXJlY3QuYyAgICAgICAgICAgfCAyICstCiBpbmNsdWRlL3FlbXUvbWFpbi1sb29wLmgg ICAgfCAyICstCiBtb25pdG9yLmMgICAgICAgICAgICAgICAgICAgfCA0ICsrLS0KIG5ldC9jb2xv LWNvbXBhcmUuYyAgICAgICAgICB8IDQgKystLQogbmV0L2ZpbHRlci1taXJyb3IuYyAgICAgICAg IHwgMiArLQogbmV0L3NsaXJwLmMgICAgICAgICAgICAgICAgIHwgMiArLQogcXRlc3QuYyAgICAg ICAgICAgICAgICAgICAgIHwgMiArLQogdGFyZ2V0L3h0ZW5zYS94dGVuc2Etc2VtaS5jIHwgMiAr LQogNDQgZmlsZXMgY2hhbmdlZCwgNTMgaW5zZXJ0aW9ucygrKSwgNTAgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvYmFja2VuZHMvcm5nLWVnZC5jIGIvYmFja2VuZHMvcm5nLWVnZC5jCmluZGV4 IGQyYjljZTZjYmYuLmI1MWMwMWY2NjQgMTAwNjQ0Ci0tLSBhL2JhY2tlbmRzL3JuZy1lZ2QuYwor KysgYi9iYWNrZW5kcy9ybmctZWdkLmMKQEAgLTYxLDcgKzYxLDcgQEAgc3RhdGljIGludCBybmdf ZWdkX2Nocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiAgICAgcmV0dXJuIHNpemU7CiB9CiAKLXN0 YXRpYyB2b2lkIHJuZ19lZ2RfY2hyX3JlYWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpi dWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgcm5nX2VnZF9jaHJfcmVhZCh2b2lkICpvcGFxdWUs IGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgUm5nRWdkICpzID0gUk5H X0VHRChvcGFxdWUpOwogICAgIHNpemVfdCBidWZfb2Zmc2V0ID0gMDsKZGlmZiAtLWdpdCBhL2No YXJkZXYvY2hhci1tdXguYyBiL2NoYXJkZXYvY2hhci1tdXguYwppbmRleCAzY2E3MzJkM2E4Li5k OGQ2ZWFhNjQ2IDEwMDY0NAotLS0gYS9jaGFyZGV2L2NoYXItbXV4LmMKKysrIGIvY2hhcmRldi9j aGFyLW11eC5jCkBAIC0yMDksNyArMjA5LDcgQEAgc3RhdGljIGludCBtdXhfY2hyX2Nhbl9yZWFk KHZvaWQgKm9wYXF1ZSkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQgbXV4X2Nocl9y ZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2 b2lkIG11eF9jaHJfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90 IHNpemUpCiB7CiAgICAgQ2hhcmRldiAqY2hyID0gQ0hBUkRFVihvcGFxdWUpOwogICAgIE11eENo YXJkZXYgKmQgPSBNVVhfQ0hBUkRFVihvcGFxdWUpOwpkaWZmIC0tZ2l0IGEvZ2Ric3R1Yi5jIGIv Z2Ric3R1Yi5jCmluZGV4IGJiYmIxY2ZjYzEuLmEyZmMzNjgyY2UgMTAwNjQ0Ci0tLSBhL2dkYnN0 dWIuYworKysgYi9nZGJzdHViLmMKQEAgLTE5MjMsNyArMTkyMyw3IEBAIHN0YXRpYyBpbnQgZ2Ri X2Nocl9jYW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCiAgIHJldHVybiBNQVhfUEFDS0VUX0xFTkdU SDsKIH0KIAotc3RhdGljIHZvaWQgZ2RiX2Nocl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3Qg dWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIGdkYl9jaHJfcmVjZWl2ZSh2b2lk ICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgaW50IGk7 CiAKZGlmZiAtLWdpdCBhL2h3L2FybS9weGEyeHguYyBiL2h3L2FybS9weGEyeHguYwppbmRleCBm NTk4YTFjMDUzLi43NWI2YWEyNzcyIDEwMDY0NAotLS0gYS9ody9hcm0vcHhhMnh4LmMKKysrIGIv aHcvYXJtL3B4YTJ4eC5jCkBAIC0xOTI5LDcgKzE5MjksNyBAQCBzdGF0aWMgaW50IHB4YTJ4eF9m aXJfaXNfZW1wdHkodm9pZCAqb3BhcXVlKQogICAgIHJldHVybiAocy0+cnhfbGVuIDwgNjQpOwog fQogCi1zdGF0aWMgdm9pZCBweGEyeHhfZmlyX3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhf dCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHB4YTJ4eF9maXJfcngodm9pZCAqb3BhcXVl LCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIFBYQTJ4eEZJclN0YXRl ICpzID0gKFBYQTJ4eEZJclN0YXRlICopIG9wYXF1ZTsKICAgICBpZiAoIShzLT5jb250cm9sWzBd ICYgKDEgPDwgNCkpKQkJCS8qIFJYRSAqLwpkaWZmIC0tZ2l0IGEvaHcvYXJtL3N0cm9uZ2FybS5j IGIvaHcvYXJtL3N0cm9uZ2FybS5jCmluZGV4IGVjMjYyNzM3NGQuLjQwZGI0ZTVlMGEgMTAwNjQ0 Ci0tLSBhL2h3L2FybS9zdHJvbmdhcm0uYworKysgYi9ody9hcm0vc3Ryb25nYXJtLmMKQEAgLTEw NzIsNyArMTA3Miw4IEBAIHN0YXRpYyBpbnQgc3Ryb25nYXJtX3VhcnRfY2FuX3JlY2VpdmUodm9p ZCAqb3BhcXVlKQogICAgIHJldHVybiAxOwogfQogCi1zdGF0aWMgdm9pZCBzdHJvbmdhcm1fdWFy dF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0 YXRpYyB2b2lkIHN0cm9uZ2FybV91YXJ0X3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50 OF90ICpidWYsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVfdCBzaXpl KQogewogICAgIFN0cm9uZ0FSTVVBUlRTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICBpbnQgaTsKZGlm ZiAtLWdpdCBhL2h3L2NoYXIvYmNtMjgzNV9hdXguYyBiL2h3L2NoYXIvYmNtMjgzNV9hdXguYwpp bmRleCAwMzY0NTk2YzU1Li5jYjI2ZGY0MGY4IDEwMDY0NAotLS0gYS9ody9jaGFyL2JjbTI4MzVf YXV4LmMKKysrIGIvaHcvY2hhci9iY20yODM1X2F1eC5jCkBAIC0yMzUsNyArMjM1LDcgQEAgc3Rh dGljIHZvaWQgYmNtMjgzNV9hdXhfcHV0X2ZpZm8odm9pZCAqb3BhcXVlLCB1aW50OF90IHZhbHVl KQogICAgIGJjbTI4MzVfYXV4X3VwZGF0ZShzKTsKIH0KIAotc3RhdGljIHZvaWQgYmNtMjgzNV9h dXhfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitz dGF0aWMgdm9pZCBiY20yODM1X2F1eF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhf dCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBiY20yODM1X2F1eF9wdXRfZmlmbyhvcGFxdWUs ICpidWYpOwogfQpkaWZmIC0tZ2l0IGEvaHcvY2hhci9jYWRlbmNlX3VhcnQuYyBiL2h3L2NoYXIv Y2FkZW5jZV91YXJ0LmMKaW5kZXggZmJkYmQ0NjNiYi4uZWI1Y2M5NzRhMSAxMDA2NDQKLS0tIGEv aHcvY2hhci9jYWRlbmNlX3VhcnQuYworKysgYi9ody9jaGFyL2NhZGVuY2VfdWFydC5jCkBAIC0z MzIsNyArMzMyLDcgQEAgc3RhdGljIHZvaWQgdWFydF93cml0ZV90eF9maWZvKENhZGVuY2VVQVJU U3RhdGUgKnMsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwKICAgICBjYWRlbmNlX3VhcnRfeG1pdChOVUxM LCBHX0lPX09VVCwgcyk7CiB9CiAKLXN0YXRpYyB2b2lkIHVhcnRfcmVjZWl2ZSh2b2lkICpvcGFx dWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB1YXJ0X3JlY2Vp dmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAg IENhZGVuY2VVQVJUU3RhdGUgKnMgPSBvcGFxdWU7CiAgICAgdWludDMyX3QgY2hfbW9kZSA9IHMt PnJbUl9NUl0gJiBVQVJUX01SX0NITU9ERTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvY21zZGstYXBi LXVhcnQuYyBiL2h3L2NoYXIvY21zZGstYXBiLXVhcnQuYwppbmRleCBkZGZiYjI1YzI0Li43NzQ5 ODZkODhkIDEwMDY0NAotLS0gYS9ody9jaGFyL2Ntc2RrLWFwYi11YXJ0LmMKKysrIGIvaHcvY2hh ci9jbXNkay1hcGItdWFydC5jCkBAIC0xMTksNyArMTE5LDcgQEAgc3RhdGljIGludCB1YXJ0X2Nh bl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKICAgICByZXR1cm4gMDsKIH0KIAotc3RhdGljIHZvaWQg dWFydF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkK K3N0YXRpYyB2b2lkIHVhcnRfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1 Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgQ01TREtBUEJVQVJUICpzID0gQ01TREtfQVBCX1VBUlQo b3BhcXVlKTsKIApkaWZmIC0tZ2l0IGEvaHcvY2hhci9kaWdpYy11YXJ0LmMgYi9ody9jaGFyL2Rp Z2ljLXVhcnQuYwppbmRleCBjY2M3NWVhYTRkLi4wZjQxYTIzYjU0IDEwMDY0NAotLS0gYS9ody9j aGFyL2RpZ2ljLXVhcnQuYworKysgYi9ody9jaGFyL2RpZ2ljLXVhcnQuYwpAQCAtMTE5LDcgKzEx OSw3IEBAIHN0YXRpYyBpbnQgdWFydF9jYW5fcngodm9pZCAqb3BhcXVlKQogICAgIHJldHVybiAh KHMtPnJlZ19zdCAmIFNUX1JYX1JEWSk7CiB9CiAKLXN0YXRpYyB2b2lkIHVhcnRfcngodm9pZCAq b3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgdWFydF9y eCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAg RGlnaWNVYXJ0U3RhdGUgKnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvZXNjYy5j IGIvaHcvY2hhci9lc2NjLmMKaW5kZXggNjI4ZjVmODFmNy4uZTY1NWI4NjI3MyAxMDA2NDQKLS0t IGEvaHcvY2hhci9lc2NjLmMKKysrIGIvaHcvY2hhci9lc2NjLmMKQEAgLTYwMSw3ICs2MDEsNyBA QCBzdGF0aWMgdm9pZCBzZXJpYWxfcmVjZWl2ZV9icmVhayhFU0NDQ2hhbm5lbFN0YXRlICpzKQog ICAgIGVzY2NfdXBkYXRlX2lycShzKTsKIH0KIAotc3RhdGljIHZvaWQgc2VyaWFsX3JlY2VpdmUx KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lk IHNlcmlhbF9yZWNlaXZlMSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90 IHNpemUpCiB7CiAgICAgRVNDQ0NoYW5uZWxTdGF0ZSAqcyA9IG9wYXF1ZTsKICAgICBzZXJpYWxf cmVjZWl2ZV9ieXRlKHMsIGJ1ZlswXSk7CmRpZmYgLS1naXQgYS9ody9jaGFyL2V0cmF4ZnNfc2Vy LmMgYi9ody9jaGFyL2V0cmF4ZnNfc2VyLmMKaW5kZXggYTE4NDAyNjQxMC4uNzljZDhkMmRjMSAx MDA2NDQKLS0tIGEvaHcvY2hhci9ldHJheGZzX3Nlci5jCisrKyBiL2h3L2NoYXIvZXRyYXhmc19z ZXIuYwpAQCAtMTY2LDcgKzE2Niw3IEBAIHN0YXRpYyBQcm9wZXJ0eSBldHJheGZzX3Nlcl9wcm9w ZXJ0aWVzW10gPSB7CiAgICAgREVGSU5FX1BST1BfRU5EX09GX0xJU1QoKSwKIH07CiAKLXN0YXRp YyB2b2lkIHNlcmlhbF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBp bnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHNlcmlhbF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3Qg dWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBFVFJBWFNlcmlhbCAqcyA9IG9wYXF1 ZTsKICAgICBpbnQgaTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvZXh5bm9zNDIxMF91YXJ0LmMgYi9o dy9jaGFyL2V4eW5vczQyMTBfdWFydC5jCmluZGV4IGE1YTI4NTY1NWYuLjVmZGY1YjFmMzcgMTAw NjQ0Ci0tLSBhL2h3L2NoYXIvZXh5bm9zNDIxMF91YXJ0LmMKKysrIGIvaHcvY2hhci9leHlub3M0 MjEwX3VhcnQuYwpAQCAtNDk1LDcgKzQ5NSw4IEBAIHN0YXRpYyBpbnQgZXh5bm9zNDIxMF91YXJ0 X2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKIH0KIAogCi1zdGF0aWMgdm9pZCBleHlub3M0MjEw X3VhcnRfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUp CitzdGF0aWMgdm9pZCBleHlub3M0MjEwX3VhcnRfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0 IHVpbnQ4X3QgKmJ1ZiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemVf dCBzaXplKQogewogICAgIEV4eW5vczQyMTBVYXJ0U3RhdGUgKnMgPSAoRXh5bm9zNDIxMFVhcnRT dGF0ZSAqKW9wYXF1ZTsKICAgICBpbnQgaTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvZ3JsaWJfYXBi dWFydC5jIGIvaHcvY2hhci9ncmxpYl9hcGJ1YXJ0LmMKaW5kZXggYmFjMTFiZWM1OC4uZDM3MDYw OWE1MiAxMDA2NDQKLS0tIGEvaHcvY2hhci9ncmxpYl9hcGJ1YXJ0LmMKKysrIGIvaHcvY2hhci9n cmxpYl9hcGJ1YXJ0LmMKQEAgLTEzNyw3ICsxMzcsNyBAQCBzdGF0aWMgaW50IGdybGliX2FwYnVh cnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogICAgIHJldHVybiBGSUZPX0xFTkdUSCAtIHVh cnQtPmxlbjsKIH0KIAotc3RhdGljIHZvaWQgZ3JsaWJfYXBidWFydF9yZWNlaXZlKHZvaWQgKm9w YXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIGdybGliX2Fw YnVhcnRfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNp emUpCiB7CiAgICAgVUFSVCAqdWFydCA9IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvY2hhci9p bXhfc2VyaWFsLmMgYi9ody9jaGFyL2lteF9zZXJpYWwuYwppbmRleCAxZTM2MzE5MGUzLi5iOWZk ZmFlYjM4IDEwMDY0NAotLS0gYS9ody9jaGFyL2lteF9zZXJpYWwuYworKysgYi9ody9jaGFyL2lt eF9zZXJpYWwuYwpAQCAtMzE1LDcgKzMxNSw3IEBAIHN0YXRpYyB2b2lkIGlteF9wdXRfZGF0YSh2 b2lkICpvcGFxdWUsIHVpbnQzMl90IHZhbHVlKQogICAgIGlteF91cGRhdGUocyk7CiB9CiAKLXN0 YXRpYyB2b2lkIGlteF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBp bnQgc2l6ZSkKK3N0YXRpYyB2b2lkIGlteF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWlu dDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBpbXhfcHV0X2RhdGEob3BhcXVlLCAqYnVm KTsKIH0KZGlmZiAtLWdpdCBhL2h3L2NoYXIvaXBvY3RhbDIzMi5jIGIvaHcvY2hhci9pcG9jdGFs MjMyLmMKaW5kZXggNWUwOWNhZjg1MS4uMDhlM2Y5ZTQ1ZiAxMDA2NDQKLS0tIGEvaHcvY2hhci9p cG9jdGFsMjMyLmMKKysrIGIvaHcvY2hhci9pcG9jdGFsMjMyLmMKQEAgLTQ2OCw3ICs0NjgsNyBA QCBzdGF0aWMgaW50IGhvc3RkZXZfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogICAgIHJldHVy biBjaC0+cnhfZW5hYmxlZCA/IGF2YWlsYWJsZV9ieXRlcyA6IDA7CiB9CiAKLXN0YXRpYyB2b2lk IGhvc3RkZXZfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNp emUpCitzdGF0aWMgdm9pZCBob3N0ZGV2X3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50 OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIFNDQzI2OThDaGFubmVsICpjaCA9IG9wYXF1 ZTsKICAgICBJUE9jdGFsU3RhdGUgKmRldiA9IGNoLT5pcG9jdGFsOwpkaWZmIC0tZ2l0IGEvaHcv Y2hhci9sbTMyX2p1YXJ0LmMgYi9ody9jaGFyL2xtMzJfanVhcnQuYwppbmRleCBkNzVjODM1YWQy Li5lY2I2MWVlMDg2IDEwMDY0NAotLS0gYS9ody9jaGFyL2xtMzJfanVhcnQuYworKysgYi9ody9j aGFyL2xtMzJfanVhcnQuYwpAQCAtODgsNyArODgsNyBAQCB2b2lkIGxtMzJfanVhcnRfc2V0X2py eChEZXZpY2VTdGF0ZSAqZCwgdWludDMyX3QganR4KQogICAgIHMtPmpyeCAmPSB+SlJYX0ZVTEw7 CiB9CiAKLXN0YXRpYyB2b2lkIGp1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAq YnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIGp1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3Qg dWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBMTTMySnVhcnRTdGF0ZSAqcyA9IG9w YXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvY2hhci9sbTMyX3VhcnQuYyBiL2h3L2NoYXIvbG0zMl91 YXJ0LmMKaW5kZXggYzRhM2I5YjI3NS4uZWUwYmY4ZTExNyAxMDA2NDQKLS0tIGEvaHcvY2hhci9s bTMyX3VhcnQuYworKysgYi9ody9jaGFyL2xtMzJfdWFydC5jCkBAIC0yMTEsNyArMjExLDcgQEAg c3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyB1YXJ0X29wcyA9IHsKICAgICB9LAogfTsKIAot c3RhdGljIHZvaWQgdWFydF9yeCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50 IHNpemUpCitzdGF0aWMgdm9pZCB1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAq YnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBMTTMyVWFydFN0YXRlICpzID0gb3BhcXVlOwogCmRp ZmYgLS1naXQgYS9ody9jaGFyL21jZl91YXJ0LmMgYi9ody9jaGFyL21jZl91YXJ0LmMKaW5kZXgg Nzg3Zjk4NWRiNi4uZTEyNjg2MGI0NiAxMDA2NDQKLS0tIGEvaHcvY2hhci9tY2ZfdWFydC5jCisr KyBiL2h3L2NoYXIvbWNmX3VhcnQuYwpAQCAtMjc0LDcgKzI3NCw3IEBAIHN0YXRpYyBpbnQgbWNm X3VhcnRfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVlKQogICAgIHJldHVybiBzLT5yeF9lbmFibGVk ICYmIChzLT5zciAmIE1DRl9VQVJUX0ZGVUxMKSA9PSAwOwogfQogCi1zdGF0aWMgdm9pZCBtY2Zf dWFydF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkK K3N0YXRpYyB2b2lkIG1jZl91YXJ0X3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90 ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIG1jZl91YXJ0X3N0YXRlICpzID0gKG1jZl91YXJ0 X3N0YXRlICopb3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL21pbGt5bWlzdC11YXJ0LmMg Yi9ody9jaGFyL21pbGt5bWlzdC11YXJ0LmMKaW5kZXggNTQ4ZWUyN2JjYS4uYTEwYzA5NTdmZiAx MDA2NDQKLS0tIGEvaHcvY2hhci9taWxreW1pc3QtdWFydC5jCisrKyBiL2h3L2NoYXIvbWlsa3lt aXN0LXVhcnQuYwpAQCAtMTU4LDcgKzE1OCw3IEBAIHN0YXRpYyBjb25zdCBNZW1vcnlSZWdpb25P cHMgdWFydF9tbWlvX29wcyA9IHsKICAgICAuZW5kaWFubmVzcyA9IERFVklDRV9OQVRJVkVfRU5E SUFOLAogfTsKIAotc3RhdGljIHZvaWQgdWFydF9yeCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4 X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29u c3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBNaWxreW1pc3RVYXJ0U3RhdGUg KnMgPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvcGwwMTEuYyBiL2h3L2NoYXIvcGww MTEuYwppbmRleCAyYWEyNzdmYzRmLi4zNzk3M2MzMmNlIDEwMDY0NAotLS0gYS9ody9jaGFyL3Bs MDExLmMKKysrIGIvaHcvY2hhci9wbDAxMS5jCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIHZv aWQgcGwwMTFfcHV0X2ZpZm8odm9pZCAqb3BhcXVlLCB1aW50MzJfdCB2YWx1ZSkKICAgICB9CiB9 CiAKLXN0YXRpYyB2b2lkIHBsMDExX3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90 ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgcGwwMTFfcmVjZWl2ZSh2b2lkICpvcGFxdWUs IGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgcGwwMTFfcHV0X2ZpZm8o b3BhcXVlLCAqYnVmKTsKIH0KZGlmZiAtLWdpdCBhL2h3L2NoYXIvc2NscGNvbnNvbGUtbG0uYyBi L2h3L2NoYXIvc2NscGNvbnNvbGUtbG0uYwppbmRleCBkYmM5MWExZTViLi5hMDRhMmE5ZDgwIDEw MDY0NAotLS0gYS9ody9jaGFyL3NjbHBjb25zb2xlLWxtLmMKKysrIGIvaHcvY2hhci9zY2xwY29u c29sZS1sbS5jCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBpbnQgY2hyX2Nhbl9yZWFkKHZvaWQg Km9wYXF1ZSkKICAgICByZXR1cm4gMTsKIH0KIAotc3RhdGljIHZvaWQgY2hyX3JlYWQodm9pZCAq b3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgY2hyX3Jl YWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAg IFNDTFBDb25zb2xlTE0gKnNjb24gPSBvcGFxdWU7CiAKZGlmZiAtLWdpdCBhL2h3L2NoYXIvc2Ns cGNvbnNvbGUuYyBiL2h3L2NoYXIvc2NscGNvbnNvbGUuYwppbmRleCAxZmExNmU5MDU1Li42MjM5 NWMxOWY0IDEwMDY0NAotLS0gYS9ody9jaGFyL3NjbHBjb25zb2xlLmMKKysrIGIvaHcvY2hhci9z Y2xwY29uc29sZS5jCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBpbnQgY2hyX2Nhbl9yZWFkKHZv aWQgKm9wYXF1ZSkKIH0KIAogLyogU2VuZCBkYXRhIGZyb20gYSBjaGFyIGRldmljZSBvdmVyIHRv IHRoZSBndWVzdCAqLwotc3RhdGljIHZvaWQgY2hyX3JlYWQodm9pZCAqb3BhcXVlLCBjb25zdCB1 aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgY2hyX3JlYWQodm9pZCAqb3BhcXVl LCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIFNDTFBDb25zb2xlICpz Y29uID0gb3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL3NlcmlhbC5jIGIvaHcvY2hhci9z ZXJpYWwuYwppbmRleCAwMjQ2M2UzMzg4Li42OWJhZWQxMDViIDEwMDY0NAotLS0gYS9ody9jaGFy L3NlcmlhbC5jCisrKyBiL2h3L2NoYXIvc2VyaWFsLmMKQEAgLTEwNSw3ICsxMDUsNyBAQCBkbyB7 IGZwcmludGYoc3RkZXJyLCAic2VyaWFsOiAiIGZtdCAsICMjIF9fVkFfQVJHU19fKTsgfSB3aGls ZSAoMCkKIGRvIHt9IHdoaWxlICgwKQogI2VuZGlmCiAKLXN0YXRpYyB2b2lkIHNlcmlhbF9yZWNl aXZlMSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpOworc3RhdGlj IHZvaWQgc2VyaWFsX3JlY2VpdmUxKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBz aXplX3Qgc2l6ZSk7CiBzdGF0aWMgdm9pZCBzZXJpYWxfeG1pdChTZXJpYWxTdGF0ZSAqcyk7CiAK IHN0YXRpYyBpbmxpbmUgdm9pZCByZWN2X2ZpZm9fcHV0KFNlcmlhbFN0YXRlICpzLCB1aW50OF90 IGNocikKQEAgLTYwNiw3ICs2MDYsNyBAQCBzdGF0aWMgaW50IHNlcmlhbF9jYW5fcmVjZWl2ZTEo dm9pZCAqb3BhcXVlKQogICAgIHJldHVybiBzZXJpYWxfY2FuX3JlY2VpdmUocyk7CiB9CiAKLXN0 YXRpYyB2b2lkIHNlcmlhbF9yZWNlaXZlMSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1 ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCBzZXJpYWxfcmVjZWl2ZTEodm9pZCAqb3BhcXVlLCBj b25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIFNlcmlhbFN0YXRlICpzID0g b3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL3NoX3NlcmlhbC5jIGIvaHcvY2hhci9zaF9z ZXJpYWwuYwppbmRleCAxMjgzMTU2MWE2Li4wNGZkY2VlMzI4IDEwMDY0NAotLS0gYS9ody9jaGFy L3NoX3NlcmlhbC5jCisrKyBiL2h3L2NoYXIvc2hfc2VyaWFsLmMKQEAgLTMyNyw3ICszMjcsNyBA QCBzdGF0aWMgdm9pZCBzaF9zZXJpYWxfdGltZW91dF9pbnQodm9pZCAqb3BhcXVlKQogICAgIH0K IH0KIAotc3RhdGljIHZvaWQgc2hfc2VyaWFsX3JlY2VpdmUxKHZvaWQgKm9wYXF1ZSwgY29uc3Qg dWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHNoX3NlcmlhbF9yZWNlaXZlMSh2 b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgc2hf c2VyaWFsX3N0YXRlICpzID0gb3BhcXVlOwogCmRpZmYgLS1naXQgYS9ody9jaGFyL3NwYXByX3Z0 eS5jIGIvaHcvY2hhci9zcGFwcl92dHkuYwppbmRleCA2NzQ4MzM0ZGVkLi40MmI0YjYxY2NlIDEw MDY0NAotLS0gYS9ody9jaGFyL3NwYXByX3Z0eS5jCisrKyBiL2h3L2NoYXIvc3BhcHJfdnR5LmMK QEAgLTI4LDcgKzI4LDcgQEAgc3RhdGljIGludCB2dHlfY2FuX3JlY2VpdmUodm9pZCAqb3BhcXVl KQogICAgIHJldHVybiBWVEVSTV9CVUZTSVpFIC0gKGRldi0+aW4gLSBkZXYtPm91dCk7CiB9CiAK LXN0YXRpYyB2b2lkIHZ0eV9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVm LCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHZ0eV9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3Qg dWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBWSU9zUEFQUlZUWURldmljZSAqZGV2 ID0gVklPX1NQQVBSX1ZUWV9ERVZJQ0Uob3BhcXVlKTsKICAgICBpbnQgaTsKQEAgLTQyLDcgKzQy LDcgQEAgc3RhdGljIHZvaWQgdnR5X3JlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90 ICpidWYsIGludCBzaXplKQogICAgICAgICAgICAgc3RhdGljIGJvb2wgcmVwb3J0ZWQ7CiAgICAg ICAgICAgICBpZiAoIXJlcG9ydGVkKSB7CiAgICAgICAgICAgICAgICAgZXJyb3JfcmVwb3J0KCJW VFkgaW5wdXQgYnVmZmVyIGV4aGF1c3RlZCAtIGNoYXJhY3RlcnMgZHJvcHBlZC4iCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICIgKGlucHV0IHNpemUgPSAlaSkiLCBzaXplKTsKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIiAoaW5wdXQgc2l6ZSA9ICV6dSkiLCBzaXplKTsKICAg ICAgICAgICAgICAgICByZXBvcnRlZCA9IHRydWU7CiAgICAgICAgICAgICB9CiAgICAgICAgICAg ICBicmVhazsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvc3RtMzJmMnh4X3VzYXJ0LmMgYi9ody9jaGFy L3N0bTMyZjJ4eF91c2FydC5jCmluZGV4IDAzMmI1ZmRhMTMuLjc4YmYxNDI2NzggMTAwNjQ0Ci0t LSBhL2h3L2NoYXIvc3RtMzJmMnh4X3VzYXJ0LmMKKysrIGIvaHcvY2hhci9zdG0zMmYyeHhfdXNh cnQuYwpAQCAtNDksNyArNDksOCBAQCBzdGF0aWMgaW50IHN0bTMyZjJ4eF91c2FydF9jYW5fcmVj ZWl2ZSh2b2lkICpvcGFxdWUpCiAgICAgcmV0dXJuIDA7CiB9CiAKLXN0YXRpYyB2b2lkIHN0bTMy ZjJ4eF91c2FydF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQg c2l6ZSkKK3N0YXRpYyB2b2lkIHN0bTMyZjJ4eF91c2FydF9yZWNlaXZlKHZvaWQgKm9wYXF1ZSwg Y29uc3QgdWludDhfdCAqYnVmLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2l6ZV90IHNpemUpCiB7CiAgICAgU1RNMzJGMlhYVXNhcnRTdGF0ZSAqcyA9IG9wYXF1ZTsKIApk aWZmIC0tZ2l0IGEvaHcvY2hhci90ZXJtaW5hbDMyNzAuYyBiL2h3L2NoYXIvdGVybWluYWwzMjcw LmMKaW5kZXggZTljNDVlNTViMS4uMDc2NTE2OTkxZSAxMDA2NDQKLS0tIGEvaHcvY2hhci90ZXJt aW5hbDMyNzAuYworKysgYi9ody9jaGFyL3Rlcm1pbmFsMzI3MC5jCkBAIC05MCw3ICs5MCw3IEBA IHN0YXRpYyBnYm9vbGVhbiBzZW5kX3RpbWluZ19tYXJrX2NiKGdwb2ludGVyIG9wYXF1ZSkKICAq IEFzIG9mIG5vdywgZm9yIHN1Y2ggY2FzZSwgd2Ugc2ltcGx5IHRlcm1pbmF0ZSB0aGUgY29ubmVj dGlvbiwKICAqIGFuZCB3ZSBzaG91bGQgY29tZSBiYWNrIGhlcmUgbGF0ZXIgd2l0aCBhIGJldHRl ciBzb2x1dGlvbi4KICAqLwotc3RhdGljIHZvaWQgdGVybWluYWxfcmVhZCh2b2lkICpvcGFxdWUs IGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB0ZXJtaW5hbF9yZWFk KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBU ZXJtaW5hbDMyNzAgKnQgPSBvcGFxdWU7CiAgICAgQ2N3RGV2aWNlICpjY3dfZGV2ID0gQ0NXX0RF VklDRSh0KTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIvdmlydGlvLWNvbnNvbGUuYyBiL2h3L2NoYXIv dmlydGlvLWNvbnNvbGUuYwppbmRleCAyY2JlMWQ0ZWQ1Li5lM2QzNjhiOTc2IDEwMDY0NAotLS0g YS9ody9jaGFyL3ZpcnRpby1jb25zb2xlLmMKKysrIGIvaHcvY2hhci92aXJ0aW8tY29uc29sZS5j CkBAIC0xMzQsNyArMTM0LDcgQEAgc3RhdGljIGludCBjaHJfY2FuX3JlYWQodm9pZCAqb3BhcXVl KQogfQogCiAvKiBTZW5kIGRhdGEgZnJvbSBhIGNoYXIgZGV2aWNlIG92ZXIgdG8gdGhlIGd1ZXN0 ICovCi1zdGF0aWMgdm9pZCBjaHJfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1 ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCBjaHJfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVp bnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgVmlydENvbnNvbGUgKnZjb24gPSBvcGFx dWU7CiAgICAgVmlydElPU2VyaWFsUG9ydCAqcG9ydCA9IFZJUlRJT19TRVJJQUxfUE9SVCh2Y29u KTsKZGlmZiAtLWdpdCBhL2h3L2NoYXIveGVuX2NvbnNvbGUuYyBiL2h3L2NoYXIveGVuX2NvbnNv bGUuYwppbmRleCA0NGY3MjM2MzgyLi5jYTkwYzVjMTdlIDEwMDY0NAotLS0gYS9ody9jaGFyL3hl bl9jb25zb2xlLmMKKysrIGIvaHcvY2hhci94ZW5fY29uc29sZS5jCkBAIC0xMjIsNyArMTIyLDcg QEAgc3RhdGljIGludCB4ZW5jb25zX2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKICAgICByZXR1 cm4gcmluZ19mcmVlX2J5dGVzKGNvbik7CiB9CiAKLXN0YXRpYyB2b2lkIHhlbmNvbnNfcmVjZWl2 ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IGxlbikKK3N0YXRpYyB2b2lk IHhlbmNvbnNfcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90 IGxlbikKIHsKICAgICBzdHJ1Y3QgWGVuQ29uc29sZSAqY29uID0gb3BhcXVlOwogICAgIHN0cnVj dCB4ZW5jb25zX2ludGVyZmFjZSAqaW50ZiA9IGNvbi0+c3Jpbmc7CmRpZmYgLS1naXQgYS9ody9j aGFyL3hpbGlueF91YXJ0bGl0ZS5jIGIvaHcvY2hhci94aWxpbnhfdWFydGxpdGUuYwppbmRleCAy YThiYzFlNDk3Li5iMWFiZjhiNjA0IDEwMDY0NAotLS0gYS9ody9jaGFyL3hpbGlueF91YXJ0bGl0 ZS5jCisrKyBiL2h3L2NoYXIveGlsaW54X3VhcnRsaXRlLmMKQEAgLTE3Nyw3ICsxNzcsNyBAQCBz dGF0aWMgUHJvcGVydHkgeGlsaW54X3VhcnRsaXRlX3Byb3BlcnRpZXNbXSA9IHsKICAgICBERUZJ TkVfUFJPUF9FTkRfT0ZfTElTVCgpLAogfTsKIAotc3RhdGljIHZvaWQgdWFydF9yeCh2b2lkICpv cGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCB1YXJ0X3J4 KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBY aWxpbnhVQVJUTGl0ZSAqcyA9IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvaXBtaS9pcG1pX2Jt Y19leHRlcm4uYyBiL2h3L2lwbWkvaXBtaV9ibWNfZXh0ZXJuLmMKaW5kZXggOGM3OGI5ODA0Yi4u YzUyZjgwZjc3MSAxMDA2NDQKLS0tIGEvaHcvaXBtaS9pcG1pX2JtY19leHRlcm4uYworKysgYi9o dy9pcG1pL2lwbWlfYm1jX2V4dGVybi5jCkBAIC0zMTIsNyArMzEyLDcgQEAgc3RhdGljIGludCBj YW5fcmVjZWl2ZSh2b2lkICpvcGFxdWUpCiAgICAgcmV0dXJuIDE7CiB9CiAKLXN0YXRpYyB2b2lk IHJlY2VpdmUodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3Rh dGljIHZvaWQgcmVjZWl2ZSh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90 IHNpemUpCiB7CiAgICAgSVBNSUJtY0V4dGVybiAqaWJlID0gb3BhcXVlOwogICAgIGludCBpOwpk aWZmIC0tZ2l0IGEvaHcvbWlzYy9pdnNobWVtLmMgYi9ody9taXNjL2l2c2htZW0uYwppbmRleCA4 Y2IxN2I5ZGQ0Li5mNTA2NDc5ODQ1IDEwMDY0NAotLS0gYS9ody9taXNjL2l2c2htZW0uYworKysg Yi9ody9taXNjL2l2c2htZW0uYwpAQCAtNjI4LDE0ICs2MjgsMTQgQEAgc3RhdGljIGludCBpdnNo bWVtX2Nhbl9yZWNlaXZlKHZvaWQgKm9wYXF1ZSkKICAgICByZXR1cm4gc2l6ZW9mKHMtPm1zZ19i dWYpIC0gcy0+bXNnX2J1ZmZlcmVkX2J5dGVzOwogfQogCi1zdGF0aWMgdm9pZCBpdnNobWVtX3Jl YWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZv aWQgaXZzaG1lbV9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qg c2l6ZSkKIHsKICAgICBJVlNobWVtU3RhdGUgKnMgPSBvcGFxdWU7CiAgICAgRXJyb3IgKmVyciA9 IE5VTEw7CiAgICAgaW50IGZkOwogICAgIGludDY0X3QgbXNnOwogCi0gICAgYXNzZXJ0KHNpemUg Pj0gMCAmJiBzLT5tc2dfYnVmZmVyZWRfYnl0ZXMgKyBzaXplIDw9IHNpemVvZihzLT5tc2dfYnVm KSk7CisgICAgYXNzZXJ0KHMtPm1zZ19idWZmZXJlZF9ieXRlcyArIHNpemUgPD0gc2l6ZW9mKHMt Pm1zZ19idWYpKTsKICAgICBtZW1jcHkoKHVuc2lnbmVkIGNoYXIgKikmcy0+bXNnX2J1ZiArIHMt Pm1zZ19idWZmZXJlZF9ieXRlcywgYnVmLCBzaXplKTsKICAgICBzLT5tc2dfYnVmZmVyZWRfYnl0 ZXMgKz0gc2l6ZTsKICAgICBpZiAocy0+bXNnX2J1ZmZlcmVkX2J5dGVzIDwgc2l6ZW9mKHMtPm1z Z19idWYpKSB7CmRpZmYgLS1naXQgYS9ody9yaXNjdi9yaXNjdl9odGlmLmMgYi9ody9yaXNjdi9y aXNjdl9odGlmLmMKaW5kZXggNGY3YjExZGMzNy4uMjYyNWY1ZTllOCAxMDA2NDQKLS0tIGEvaHcv cmlzY3YvcmlzY3ZfaHRpZi5jCisrKyBiL2h3L3Jpc2N2L3Jpc2N2X2h0aWYuYwpAQCAtNzQsNyAr NzQsNyBAQCBzdGF0aWMgaW50IGh0aWZfY2FuX3JlY3Yodm9pZCAqb3BhcXVlKQogICogQ2FsbGVk IGJ5IHRoZSBjaGFyIGRldiB0byBzdXBwbHkgaW5wdXQgdG8gSFRJRiBjb25zb2xlLgogICogV2Ug YXNzdW1lIHRoYXQgd2Ugd2lsbCByZWNlaXZlIG9uZSBjaGFyYWN0ZXIgYXQgYSB0aW1lLgogICov Ci1zdGF0aWMgdm9pZCBodGlmX3JlY3Yodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYs IGludCBzaXplKQorc3RhdGljIHZvaWQgaHRpZl9yZWN2KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWlu dDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBIVElGU3RhdGUgKmh0aWZzdGF0ZSA9IG9w YXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvcmlzY3Yvc2lmaXZlX3VhcnQuYyBiL2h3L3Jpc2N2L3Np Zml2ZV91YXJ0LmMKaW5kZXggYjBjMzc5OGNmMi4uZDRjYmY5MWI5ZiAxMDA2NDQKLS0tIGEvaHcv cmlzY3Yvc2lmaXZlX3VhcnQuYworKysgYi9ody9yaXNjdi9zaWZpdmVfdWFydC5jCkBAIC0xMjMs NyArMTIzLDcgQEAgc3RhdGljIGNvbnN0IE1lbW9yeVJlZ2lvbk9wcyB1YXJ0X29wcyA9IHsKICAg ICB9CiB9OwogCi1zdGF0aWMgdm9pZCB1YXJ0X3J4KHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhf dCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIHVhcnRfcngodm9pZCAqb3BhcXVlLCBjb25z dCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKQogewogICAgIFNpRml2ZVVBUlRTdGF0ZSAqcyA9 IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvaHcvdXNiL2NjaWQtY2FyZC1wYXNzdGhydS5jIGIvaHcv dXNiL2NjaWQtY2FyZC1wYXNzdGhydS5jCmluZGV4IDBhNmM2NTcyMjguLmI2ZmEzNWE0YjQgMTAw NjQ0Ci0tLSBhL2h3L3VzYi9jY2lkLWNhcmQtcGFzc3RocnUuYworKysgYi9ody91c2IvY2NpZC1j YXJkLXBhc3N0aHJ1LmMKQEAgLTI3MCwxMyArMjcwLDEzIEBAIHN0YXRpYyB2b2lkIGNjaWRfY2Fy ZF92c2NhcmRfZHJvcF9jb25uZWN0aW9uKFBhc3N0aHJ1U3RhdGUgKmNhcmQpCiAgICAgY2FyZC0+ dnNjYXJkX2luX3BvcyA9IGNhcmQtPnZzY2FyZF9pbl9oZHIgPSAwOwogfQogCi1zdGF0aWMgdm9p ZCBjY2lkX2NhcmRfdnNjYXJkX3JlYWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYs IGludCBzaXplKQorc3RhdGljIHZvaWQgY2NpZF9jYXJkX3ZzY2FyZF9yZWFkKHZvaWQgKm9wYXF1 ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBQYXNzdGhydVN0YXRl ICpjYXJkID0gb3BhcXVlOwogICAgIFZTQ01zZ0hlYWRlciAqaGRyOwogCiAgICAgaWYgKGNhcmQt PnZzY2FyZF9pbl9wb3MgKyBzaXplID4gVlNDQVJEX0lOX1NJWkUpIHsKLSAgICAgICAgZXJyb3Jf cmVwb3J0KCJubyByb29tIGZvciBkYXRhOiBwb3MgJXUgKyAgc2l6ZSAlZCA+ICUiIFBSSWQ2NCAi LiIKKyAgICAgICAgZXJyb3JfcmVwb3J0KCJubyByb29tIGZvciBkYXRhOiBwb3MgJXUgKyAgc2l6 ZSAlenUgPiAlIiBQUklkNjQgIi4iCiAgICAgICAgICAgICAgICAgICAgICAiIGRyb3BwaW5nIGNv bm5lY3Rpb24uIiwKICAgICAgICAgICAgICAgICAgICAgIGNhcmQtPnZzY2FyZF9pbl9wb3MsIHNp emUsIFZTQ0FSRF9JTl9TSVpFKTsKICAgICAgICAgY2NpZF9jYXJkX3ZzY2FyZF9kcm9wX2Nvbm5l Y3Rpb24oY2FyZCk7CmRpZmYgLS1naXQgYS9ody91c2IvZGV2LXNlcmlhbC5jIGIvaHcvdXNiL2Rl di1zZXJpYWwuYwppbmRleCA5OGQxY2EzYzkxLi5lZmFlYWI0ODRkIDEwMDY0NAotLS0gYS9ody91 c2IvZGV2LXNlcmlhbC5jCisrKyBiL2h3L3VzYi9kZXYtc2VyaWFsLmMKQEAgLTQzMSw3ICs0MzEs NyBAQCBzdGF0aWMgaW50IHVzYl9zZXJpYWxfY2FuX3JlYWQodm9pZCAqb3BhcXVlKQogICAgIHJl dHVybiBSRUNWX0JVRiAtIHMtPnJlY3ZfdXNlZDsKIH0KIAotc3RhdGljIHZvaWQgdXNiX3Nlcmlh bF9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRp YyB2b2lkIHVzYl9zZXJpYWxfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwg c2l6ZV90IHNpemUpCiB7CiAgICAgVVNCU2VyaWFsU3RhdGUgKnMgPSBvcGFxdWU7CiAgICAgaW50 IGZpcnN0X3NpemUsIHN0YXJ0OwpkaWZmIC0tZ2l0IGEvaHcvdXNiL3JlZGlyZWN0LmMgYi9ody91 c2IvcmVkaXJlY3QuYwppbmRleCA5OTA5NGE3MjFlLi5hNzMwNzZiYTc4IDEwMDY0NAotLS0gYS9o dy91c2IvcmVkaXJlY3QuYworKysgYi9ody91c2IvcmVkaXJlY3QuYwpAQCAtMTMwMiw3ICsxMzAy LDcgQEAgc3RhdGljIGludCB1c2JyZWRpcl9jaGFyZGV2X2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkK ICAgICByZXR1cm4gMSAqIE1pQjsKIH0KIAotc3RhdGljIHZvaWQgdXNicmVkaXJfY2hhcmRldl9y ZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2 b2lkIHVzYnJlZGlyX2NoYXJkZXZfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1 Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgVVNCUmVkaXJEZXZpY2UgKmRldiA9IG9wYXF1ZTsKIApk aWZmIC0tZ2l0IGEvaW5jbHVkZS9xZW11L21haW4tbG9vcC5oIGIvaW5jbHVkZS9xZW11L21haW4t bG9vcC5oCmluZGV4IGU1OWY5YWUxZTkuLmM1YTcyOTkyNjYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUv cWVtdS9tYWluLWxvb3AuaAorKysgYi9pbmNsdWRlL3FlbXUvbWFpbi1sb29wLmgKQEAgLTE2Nyw3 ICsxNjcsNyBAQCB2b2lkIHFlbXVfZGVsX3dhaXRfb2JqZWN0KEhBTkRMRSBoYW5kbGUsIFdhaXRP YmplY3RGdW5jICpmdW5jLCB2b2lkICpvcGFxdWUpOwogCiAvKiBhc3luYyBJL08gc3VwcG9ydCAq LwogCi10eXBlZGVmIHZvaWQgSU9SZWFkSGFuZGxlcih2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4 X3QgKmJ1ZiwgaW50IHNpemUpOwordHlwZWRlZiB2b2lkIElPUmVhZEhhbmRsZXIodm9pZCAqb3Bh cXVlLCBjb25zdCB1aW50OF90ICpidWYsIHNpemVfdCBzaXplKTsKIAogLyoqCiAgKiBJT0NhblJl YWRIYW5kbGVyOiBSZXR1cm4gdGhlIG51bWJlciBvZiBieXRlcyB0aGF0ICNJT1JlYWRIYW5kbGVy IGNhbiBhY2NlcHQKZGlmZiAtLWdpdCBhL21vbml0b3IuYyBiL21vbml0b3IuYwppbmRleCBiOTI1 OGE3NDM4Li4xMjQwMWVjNjBiIDEwMDY0NAotLS0gYS9tb25pdG9yLmMKKysrIGIvbW9uaXRvci5j CkBAIC00MjQwLDE0ICs0MjQwLDE0IEBAIHN0YXRpYyB2b2lkIGhhbmRsZV9xbXBfY29tbWFuZCh2 b2lkICpvcGFxdWUsIFFPYmplY3QgKnJlcSwgRXJyb3IgKmVycikKICAgICBxZW11X2JoX3NjaGVk dWxlKHFtcF9kaXNwYXRjaGVyX2JoKTsKIH0KIAotc3RhdGljIHZvaWQgbW9uaXRvcl9xbXBfcmVh ZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9p ZCBtb25pdG9yX3FtcF9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXpl X3Qgc2l6ZSkKIHsKICAgICBNb25pdG9yICptb24gPSBvcGFxdWU7CiAKICAgICBqc29uX21lc3Nh Z2VfcGFyc2VyX2ZlZWQoJm1vbi0+cW1wLnBhcnNlciwgKGNvbnN0IGNoYXIgKikgYnVmLCBzaXpl KTsKIH0KIAotc3RhdGljIHZvaWQgbW9uaXRvcl9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWlu dDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIG1vbml0b3JfcmVhZCh2b2lkICpvcGFx dWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgTW9uaXRvciAqb2xk X21vbiA9IGN1cl9tb247CiAgICAgaW50IGk7CmRpZmYgLS1naXQgYS9uZXQvY29sby1jb21wYXJl LmMgYi9uZXQvY29sby1jb21wYXJlLmMKaW5kZXggZGQ3NDVhNDkxYi4uNDMzZTliYTI4NyAxMDA2 NDQKLS0tIGEvbmV0L2NvbG8tY29tcGFyZS5jCisrKyBiL25ldC9jb2xvLWNvbXBhcmUuYwpAQCAt NjkyLDcgKzY5Miw3IEBAIHN0YXRpYyBpbnQgY29tcGFyZV9jaHJfY2FuX3JlYWQodm9pZCAqb3Bh cXVlKQogICogQ2FsbGVkIGZyb20gdGhlIG1haW4gdGhyZWFkIG9uIHRoZSBwcmltYXJ5IGZvciBw YWNrZXRzCiAgKiBhcnJpdmluZyBvdmVyIHRoZSBzb2NrZXQgZnJvbSB0aGUgcHJpbWFyeS4KICAq Lwotc3RhdGljIHZvaWQgY29tcGFyZV9wcmlfY2hyX2luKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWlu dDhfdCAqYnVmLCBpbnQgc2l6ZSkKK3N0YXRpYyB2b2lkIGNvbXBhcmVfcHJpX2Nocl9pbih2b2lk ICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgQ29tcGFy ZVN0YXRlICpzID0gQ09MT19DT01QQVJFKG9wYXF1ZSk7CiAgICAgaW50IHJldDsKQEAgLTcwOSw3 ICs3MDksNyBAQCBzdGF0aWMgdm9pZCBjb21wYXJlX3ByaV9jaHJfaW4odm9pZCAqb3BhcXVlLCBj b25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQogICogQ2FsbGVkIGZyb20gdGhlIG1haW4gdGhy ZWFkIG9uIHRoZSBwcmltYXJ5IGZvciBwYWNrZXRzCiAgKiBhcnJpdmluZyBvdmVyIHRoZSBzb2Nr ZXQgZnJvbSB0aGUgc2Vjb25kYXJ5LgogICovCi1zdGF0aWMgdm9pZCBjb21wYXJlX3NlY19jaHJf aW4odm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZv aWQgY29tcGFyZV9zZWNfY2hyX2luKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBz aXplX3Qgc2l6ZSkKIHsKICAgICBDb21wYXJlU3RhdGUgKnMgPSBDT0xPX0NPTVBBUkUob3BhcXVl KTsKICAgICBpbnQgcmV0OwpkaWZmIC0tZ2l0IGEvbmV0L2ZpbHRlci1taXJyb3IuYyBiL25ldC9m aWx0ZXItbWlycm9yLmMKaW5kZXggM2E2MWNmMjFlOC4uMjdiNmU1MmExZCAxMDA2NDQKLS0tIGEv bmV0L2ZpbHRlci1taXJyb3IuYworKysgYi9uZXQvZmlsdGVyLW1pcnJvci5jCkBAIC0xMTksNyAr MTE5LDcgQEAgc3RhdGljIGludCByZWRpcmVjdG9yX2Nocl9jYW5fcmVhZCh2b2lkICpvcGFxdWUp CiAgICAgcmV0dXJuIFJFRElSRUNUT1JfTUFYX0xFTjsKIH0KIAotc3RhdGljIHZvaWQgcmVkaXJl Y3Rvcl9jaHJfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUp CitzdGF0aWMgdm9pZCByZWRpcmVjdG9yX2Nocl9yZWFkKHZvaWQgKm9wYXF1ZSwgY29uc3QgdWlu dDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBOZXRGaWx0ZXJTdGF0ZSAqbmYgPSBvcGFx dWU7CiAgICAgTWlycm9yU3RhdGUgKnMgPSBGSUxURVJfUkVESVJFQ1RPUihuZik7CmRpZmYgLS1n aXQgYS9uZXQvc2xpcnAuYyBiL25ldC9zbGlycC5jCmluZGV4IDk5ODg0ZGUyMDQuLjVlODY0ZjRh NGYgMTAwNjQ0Ci0tLSBhL25ldC9zbGlycC5jCisrKyBiL25ldC9zbGlycC5jCkBAIC03MTgsNyAr NzE4LDcgQEAgc3RhdGljIGludCBndWVzdGZ3ZF9jYW5fcmVhZCh2b2lkICpvcGFxdWUpCiAgICAg cmV0dXJuIHNsaXJwX3NvY2tldF9jYW5fcmVjdihmd2QtPnNsaXJwLCBmd2QtPnNlcnZlciwgZndk LT5wb3J0KTsKIH0KIAotc3RhdGljIHZvaWQgZ3Vlc3Rmd2RfcmVhZCh2b2lkICpvcGFxdWUsIGNv bnN0IHVpbnQ4X3QgKmJ1ZiwgaW50IHNpemUpCitzdGF0aWMgdm9pZCBndWVzdGZ3ZF9yZWFkKHZv aWQgKm9wYXF1ZSwgY29uc3QgdWludDhfdCAqYnVmLCBzaXplX3Qgc2l6ZSkKIHsKICAgICBzdHJ1 Y3QgR3Vlc3RGd2QgKmZ3ZCA9IG9wYXF1ZTsKICAgICBzbGlycF9zb2NrZXRfcmVjdihmd2QtPnNs aXJwLCBmd2QtPnNlcnZlciwgZndkLT5wb3J0LCBidWYsIHNpemUpOwpkaWZmIC0tZ2l0IGEvcXRl c3QuYyBiL3F0ZXN0LmMKaW5kZXggNjliOWU5OTYyYi4uMDQ5NGFmZGZiMyAxMDA2NDQKLS0tIGEv cXRlc3QuYworKysgYi9xdGVzdC5jCkBAIC02NTcsNyArNjU3LDcgQEAgc3RhdGljIHZvaWQgcXRl c3RfcHJvY2Vzc19pbmJ1ZihDaGFyQmFja2VuZCAqY2hyLCBHU3RyaW5nICppbmJ1ZikKICAgICB9 CiB9CiAKLXN0YXRpYyB2b2lkIHF0ZXN0X3JlYWQodm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90 ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQgcXRlc3RfcmVhZCh2b2lkICpvcGFxdWUsIGNv bnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90IHNpemUpCiB7CiAgICAgQ2hhckJhY2tlbmQgKmNociA9 IG9wYXF1ZTsKIApkaWZmIC0tZ2l0IGEvdGFyZ2V0L3h0ZW5zYS94dGVuc2Etc2VtaS5jIGIvdGFy Z2V0L3h0ZW5zYS94dGVuc2Etc2VtaS5jCmluZGV4IGUzODkwNjlmMGIuLjI0MTg3NGVhNGUgMTAw NjQ0Ci0tLSBhL3RhcmdldC94dGVuc2EveHRlbnNhLXNlbWkuYworKysgYi90YXJnZXQveHRlbnNh L3h0ZW5zYS1zZW1pLmMKQEAgLTE2OCw3ICsxNjgsNyBAQCBzdGF0aWMgaW50IHNpbV9jb25zb2xl X2Nhbl9yZWFkKHZvaWQgKm9wYXF1ZSkKICAgICByZXR1cm4gc2l6ZW9mKHAtPmlucHV0LmJ1ZmZl cikgLSBwLT5pbnB1dC5vZmZzZXQ7CiB9CiAKLXN0YXRpYyB2b2lkIHNpbV9jb25zb2xlX3JlYWQo dm9pZCAqb3BhcXVlLCBjb25zdCB1aW50OF90ICpidWYsIGludCBzaXplKQorc3RhdGljIHZvaWQg c2ltX2NvbnNvbGVfcmVhZCh2b2lkICpvcGFxdWUsIGNvbnN0IHVpbnQ4X3QgKmJ1Ziwgc2l6ZV90 IHNpemUpCiB7CiAgICAgWHRlbnNhU2ltQ29uc29sZSAqcCA9IG9wYXF1ZTsKICAgICBzaXplX3Qg Y29weSA9IHNpemVvZihwLT5pbnB1dC5idWZmZXIpIC0gcC0+aW5wdXQub2Zmc2V0OwotLSAKMi4x Ny4xCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVu LWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6 Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==