From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([209.51.188.92]:51127) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gwPVp-0003z5-Su for qemu-devel@nongnu.org; Wed, 20 Feb 2019 05:54:03 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gwPVn-0000Q4-VS for qemu-devel@nongnu.org; Wed, 20 Feb 2019 05:54:01 -0500 Received: from mail-qk1-f195.google.com ([209.85.222.195]:40895) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gwPVn-0000M3-R8 for qemu-devel@nongnu.org; Wed, 20 Feb 2019 05:53:59 -0500 Received: by mail-qk1-f195.google.com with SMTP id h28so1670847qkk.7 for ; Wed, 20 Feb 2019 02:53:54 -0800 (PST) MIME-Version: 1.0 References: <20190220010232.18731-1-philmd@redhat.com> In-Reply-To: <20190220010232.18731-1-philmd@redhat.com> From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Date: Wed, 20 Feb 2019 11:53:42 +0100 Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: Re: [Qemu-devel] [PATCH v3 00/25] chardev: Convert qemu_chr_write() to take a size_t argument List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Cc: qemu-devel , Prasad J Pandit , Paolo Bonzini , Jason Wang , Anthony Perard , qemu-ppc@nongnu.org, Stefan Berger , David Gibson , Gerd Hoffmann , Zhang Chen , xen-devel@lists.xenproject.org, Cornelia Huck , Samuel Thibault , Christian Borntraeger , Amit Shah , Li Zhijian , Corey Minyard , "Michael S. Tsirkin" , Paul Durrant , Halil Pasic , Stefano Stabellini , qemu-s390x@nongnu.org, Pavel Dovgalyuk Hi On Wed, Feb 20, 2019 at 2:02 AM Philippe Mathieu-Daud=C3=A9 wrote: > > Hi, > > This series convert the chardev::qemu_chr_write() to take unsigned > length argument. To do so I went through all caller and checked if > there are no negative value possible. Changing signedness is problematic and can easily introduce bugs that are easy to miss during review. I agree with Cornelia about idiomatic use of int. Changing "int" for "size_t" isn't systematically a clear win. Even Google C++ style recommends to avoid unsigned types "(except for representing bitfields or modular arithmetic). Do not use an unsigned type merely to assert that a variable is non-negative." https://google.github.io/styleguide/cppguide.html#Integer_Types - see ratio= nale Since Paolo you suggested the change, could you give some convincing arguments that it's worth taking the plunge? thanks > > I'm having headaches with the Xen backend, talking with Marc-Andr=C3=A9 > he suggested I ask help to the Xen maintainers. > > Since the series is becoming quite big, I splitted it: > - part 1: convert qemu_chr_write() > - part 2: convert IOReadHandler > > part 1 can be reviewed and merged without part 2. > > The git diffstat is not huge, but there are various chardev subsystems > so many maintainers to ask for Ack. > > v2: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02396.html > v1: https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02200.html > (from Prasad J Pandit) > Changes requested by Paolo: > https://lists.gnu.org/archive/html/qemu-devel/2018-10/msg02294.html > > Please review, > > Phil. > > Philippe Mathieu-Daud=C3=A9 (25): > chardev: Simplify IOWatchPoll::fd_can_read as a GSourceFunc > chardev: Assert IOCanReadHandler can not be negative > chardev/wctablet: Use unsigned type to hold unsigned value > chardev: Let qemu_chr_be_can_write() return a size_t types > gdbstub: Use size_t for strlen() return value > gdbstub: Use size_t to hold GDBState::last_packet_len > gdbstub: Let put_buffer() use size_t > ui/gtk: Remove pointless cast > vhost-user: Express sizeof with size_t > usb-redir: Verify usbredirparser_write get called with positive count > xen: Let xencons_send() take a 'size' argument > xen: Let buffer_append() return the size consumed > RFC xen: Let buffer_append() return a size_t > virtio-serial: Let VirtIOSerialPortClass::have_data() use size_t > spapr-vty: Let vty_putchars() use size_t > tpm: Use size_t to hold sizes > net/filter-mirror: Use size_t > s390x/3270: Let insert_IAC_escape_char() use size_t > s390/ebcdic: Use size_t to iterate over arrays > s390x/sclp: Use a const variable to improve readability > s390x/sclp: Use size_t in process_mdb() > s390x/sclp: Let write_console_data() take a size_t > hw/ipmi: Assert outlen > outpos > chardev: Let qemu_chr_fe_write[_all] use size_t type argument > chardev: Let qemu_chr_write[_all] use size_t > > chardev/baum.c | 6 +++--- > chardev/char-fd.c | 6 +++--- > chardev/char-fe.c | 4 ++-- > chardev/char-io.c | 6 +++--- > chardev/char-mux.c | 3 ++- > chardev/char-pty.c | 8 ++++---- > chardev/char-socket.c | 13 +++++++------ > chardev/char-udp.c | 8 ++++---- > chardev/char-win.c | 2 +- > chardev/char.c | 15 +++++++++------ > chardev/msmouse.c | 4 ++-- > chardev/spice.c | 2 +- > chardev/trace-events | 2 +- > chardev/wctablet.c | 9 +++++---- > gdbstub.c | 8 ++++---- > hw/bt/hci-csr.c | 2 +- > hw/char/sclpconsole-lm.c | 12 +++++++----- > hw/char/spapr_vty.c | 2 +- > hw/char/terminal3270.c | 7 ++++--- > hw/char/virtio-console.c | 2 +- > hw/char/xen_console.c | 24 +++++++++++++++--------- > hw/ipmi/ipmi_bmc_extern.c | 3 ++- > hw/tpm/tpm_emulator.c | 7 ++++--- > hw/usb/redirect.c | 6 +++++- > hw/virtio/vhost-user.c | 14 ++++++++------ > include/chardev/char-fd.h | 2 +- > include/chardev/char-fe.h | 4 ++-- > include/chardev/char-io.h | 2 +- > include/chardev/char.h | 4 ++-- > include/hw/ppc/spapr_vio.h | 2 +- > include/hw/s390x/ebcdic.h | 8 ++++---- > include/hw/virtio/virtio-serial.h | 2 +- > include/sysemu/replay.h | 2 +- > net/filter-mirror.c | 2 +- > replay/replay-char.c | 2 +- > stubs/replay.c | 2 +- > ui/console.c | 6 +++--- > ui/gtk.c | 2 +- > 38 files changed, 119 insertions(+), 96 deletions(-) > > -- > 2.20.1 > From mboxrd@z Thu Jan 1 00:00:00 1970 From: =?UTF-8?B?TWFyYy1BbmRyw6kgTHVyZWF1?= Subject: Re: [PATCH v3 00/25] chardev: Convert qemu_chr_write() to take a size_t argument Date: Wed, 20 Feb 2019 11:53:42 +0100 Message-ID: References: <20190220010232.18731-1-philmd@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1gwPWi-0003G1-C1 for xen-devel@lists.xenproject.org; Wed, 20 Feb 2019 10:54:56 +0000 Received: by mail-qk1-f195.google.com with SMTP id x6so1675950qki.6 for ; Wed, 20 Feb 2019 02:54:54 -0800 (PST) In-Reply-To: <20190220010232.18731-1-philmd@redhat.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: =?UTF-8?Q?Philippe_Mathieu=2DDaud=C3=A9?= Cc: Li Zhijian , "Michael S. Tsirkin" , Jason Wang , qemu-devel , Gerd Hoffmann , Stefano Stabellini , Samuel Thibault , Halil Pasic , Christian Borntraeger , Anthony Perard , xen-devel@lists.xenproject.org, Corey Minyard , Amit Shah , qemu-s390x@nongnu.org, Paul Durrant , Pavel Dovgalyuk , Zhang Chen , David Gibson , Prasad J Pandit , Cornelia Huck , qemu-ppc@nongnu.org, Paolo Bonzini , Stefan Berger List-Id: xen-devel@lists.xenproject.org SGkKCk9uIFdlZCwgRmViIDIwLCAyMDE5IGF0IDI6MDIgQU0gUGhpbGlwcGUgTWF0aGlldS1EYXVk w6kKPHBoaWxtZEByZWRoYXQuY29tPiB3cm90ZToKPgo+IEhpLAo+Cj4gVGhpcyBzZXJpZXMgY29u dmVydCB0aGUgY2hhcmRldjo6cWVtdV9jaHJfd3JpdGUoKSB0byB0YWtlIHVuc2lnbmVkCj4gbGVu Z3RoIGFyZ3VtZW50LiBUbyBkbyBzbyBJIHdlbnQgdGhyb3VnaCBhbGwgY2FsbGVyIGFuZCBjaGVj a2VkIGlmCj4gdGhlcmUgYXJlIG5vIG5lZ2F0aXZlIHZhbHVlIHBvc3NpYmxlLgoKCkNoYW5naW5n IHNpZ25lZG5lc3MgaXMgcHJvYmxlbWF0aWMgYW5kIGNhbiBlYXNpbHkgaW50cm9kdWNlIGJ1Z3Mg dGhhdAphcmUgZWFzeSB0byBtaXNzIGR1cmluZyByZXZpZXcuCgpJIGFncmVlIHdpdGggQ29ybmVs aWEgYWJvdXQgaWRpb21hdGljIHVzZSBvZiBpbnQuIENoYW5naW5nICJpbnQiIGZvcgoic2l6ZV90 IiBpc24ndCBzeXN0ZW1hdGljYWxseSBhIGNsZWFyIHdpbi4KCkV2ZW4gR29vZ2xlIEMrKyBzdHls ZSByZWNvbW1lbmRzIHRvIGF2b2lkIHVuc2lnbmVkIHR5cGVzICIoZXhjZXB0IGZvcgpyZXByZXNl bnRpbmcgYml0ZmllbGRzIG9yIG1vZHVsYXIgYXJpdGhtZXRpYykuIERvIG5vdCB1c2UgYW4gdW5z aWduZWQKdHlwZSBtZXJlbHkgdG8gYXNzZXJ0IHRoYXQgYSB2YXJpYWJsZSBpcyBub24tbmVnYXRp dmUuIgpodHRwczovL2dvb2dsZS5naXRodWIuaW8vc3R5bGVndWlkZS9jcHBndWlkZS5odG1sI0lu dGVnZXJfVHlwZXMgLSBzZWUgcmF0aW9uYWxlCgpTaW5jZSBQYW9sbyB5b3Ugc3VnZ2VzdGVkIHRo ZSBjaGFuZ2UsIGNvdWxkIHlvdSBnaXZlIHNvbWUgY29udmluY2luZwphcmd1bWVudHMgdGhhdCBp dCdzIHdvcnRoIHRha2luZyB0aGUgcGx1bmdlPwoKdGhhbmtzCgo+Cj4gSSdtIGhhdmluZyBoZWFk YWNoZXMgd2l0aCB0aGUgWGVuIGJhY2tlbmQsIHRhbGtpbmcgd2l0aCBNYXJjLUFuZHLDqQo+IGhl IHN1Z2dlc3RlZCBJIGFzayBoZWxwIHRvIHRoZSBYZW4gbWFpbnRhaW5lcnMuCj4KPiBTaW5jZSB0 aGUgc2VyaWVzIGlzIGJlY29taW5nIHF1aXRlIGJpZywgSSBzcGxpdHRlZCBpdDoKPiAtIHBhcnQg MTogY29udmVydCBxZW11X2Nocl93cml0ZSgpCj4gLSBwYXJ0IDI6IGNvbnZlcnQgSU9SZWFkSGFu ZGxlcgo+Cj4gcGFydCAxIGNhbiBiZSByZXZpZXdlZCBhbmQgbWVyZ2VkIHdpdGhvdXQgcGFydCAy Lgo+Cj4gVGhlIGdpdCBkaWZmc3RhdCBpcyBub3QgaHVnZSwgYnV0IHRoZXJlIGFyZSB2YXJpb3Vz IGNoYXJkZXYgc3Vic3lzdGVtcwo+IHNvIG1hbnkgbWFpbnRhaW5lcnMgdG8gYXNrIGZvciBBY2su Cj4KPiB2MjogaHR0cHM6Ly9saXN0cy5nbnUub3JnL2FyY2hpdmUvaHRtbC9xZW11LWRldmVsLzIw MTgtMTAvbXNnMDIzOTYuaHRtbAo+IHYxOiBodHRwczovL2xpc3RzLmdudS5vcmcvYXJjaGl2ZS9o dG1sL3FlbXUtZGV2ZWwvMjAxOC0xMC9tc2cwMjIwMC5odG1sCj4gICAgIChmcm9tIFByYXNhZCBK IFBhbmRpdCkKPiBDaGFuZ2VzIHJlcXVlc3RlZCBieSBQYW9sbzoKPiBodHRwczovL2xpc3RzLmdu dS5vcmcvYXJjaGl2ZS9odG1sL3FlbXUtZGV2ZWwvMjAxOC0xMC9tc2cwMjI5NC5odG1sCj4KPiBQ bGVhc2UgcmV2aWV3LAo+Cj4gUGhpbC4KPgo+IFBoaWxpcHBlIE1hdGhpZXUtRGF1ZMOpICgyNSk6 Cj4gICBjaGFyZGV2OiBTaW1wbGlmeSBJT1dhdGNoUG9sbDo6ZmRfY2FuX3JlYWQgYXMgYSBHU291 cmNlRnVuYwo+ICAgY2hhcmRldjogQXNzZXJ0IElPQ2FuUmVhZEhhbmRsZXIgY2FuIG5vdCBiZSBu ZWdhdGl2ZQo+ICAgY2hhcmRldi93Y3RhYmxldDogVXNlIHVuc2lnbmVkIHR5cGUgdG8gaG9sZCB1 bnNpZ25lZCB2YWx1ZQo+ICAgY2hhcmRldjogTGV0IHFlbXVfY2hyX2JlX2Nhbl93cml0ZSgpIHJl dHVybiBhIHNpemVfdCB0eXBlcwo+ICAgZ2Ric3R1YjogVXNlIHNpemVfdCBmb3Igc3RybGVuKCkg cmV0dXJuIHZhbHVlCj4gICBnZGJzdHViOiBVc2Ugc2l6ZV90IHRvIGhvbGQgR0RCU3RhdGU6Omxh c3RfcGFja2V0X2xlbgo+ICAgZ2Ric3R1YjogTGV0IHB1dF9idWZmZXIoKSB1c2Ugc2l6ZV90Cj4g ICB1aS9ndGs6IFJlbW92ZSBwb2ludGxlc3MgY2FzdAo+ICAgdmhvc3QtdXNlcjogRXhwcmVzcyBz aXplb2Ygd2l0aCBzaXplX3QKPiAgIHVzYi1yZWRpcjogVmVyaWZ5IHVzYnJlZGlycGFyc2VyX3dy aXRlIGdldCBjYWxsZWQgd2l0aCBwb3NpdGl2ZSBjb3VudAo+ICAgeGVuOiBMZXQgeGVuY29uc19z ZW5kKCkgdGFrZSBhICdzaXplJyBhcmd1bWVudAo+ICAgeGVuOiBMZXQgYnVmZmVyX2FwcGVuZCgp IHJldHVybiB0aGUgc2l6ZSBjb25zdW1lZAo+ICAgUkZDIHhlbjogTGV0IGJ1ZmZlcl9hcHBlbmQo KSByZXR1cm4gYSBzaXplX3QKPiAgIHZpcnRpby1zZXJpYWw6IExldCBWaXJ0SU9TZXJpYWxQb3J0 Q2xhc3M6OmhhdmVfZGF0YSgpIHVzZSBzaXplX3QKPiAgIHNwYXByLXZ0eTogTGV0IHZ0eV9wdXRj aGFycygpIHVzZSBzaXplX3QKPiAgIHRwbTogVXNlIHNpemVfdCB0byBob2xkIHNpemVzCj4gICBu ZXQvZmlsdGVyLW1pcnJvcjogVXNlIHNpemVfdAo+ICAgczM5MHgvMzI3MDogTGV0IGluc2VydF9J QUNfZXNjYXBlX2NoYXIoKSB1c2Ugc2l6ZV90Cj4gICBzMzkwL2ViY2RpYzogVXNlIHNpemVfdCB0 byBpdGVyYXRlIG92ZXIgYXJyYXlzCj4gICBzMzkweC9zY2xwOiBVc2UgYSBjb25zdCB2YXJpYWJs ZSB0byBpbXByb3ZlIHJlYWRhYmlsaXR5Cj4gICBzMzkweC9zY2xwOiBVc2Ugc2l6ZV90IGluIHBy b2Nlc3NfbWRiKCkKPiAgIHMzOTB4L3NjbHA6IExldCB3cml0ZV9jb25zb2xlX2RhdGEoKSB0YWtl IGEgc2l6ZV90Cj4gICBody9pcG1pOiBBc3NlcnQgb3V0bGVuID4gb3V0cG9zCj4gICBjaGFyZGV2 OiBMZXQgcWVtdV9jaHJfZmVfd3JpdGVbX2FsbF0gdXNlIHNpemVfdCB0eXBlIGFyZ3VtZW50Cj4g ICBjaGFyZGV2OiBMZXQgcWVtdV9jaHJfd3JpdGVbX2FsbF0gdXNlIHNpemVfdAo+Cj4gIGNoYXJk ZXYvYmF1bS5jICAgICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQo+ICBjaGFyZGV2L2NoYXIt ZmQuYyAgICAgICAgICAgICAgICAgfCAgNiArKystLS0KPiAgY2hhcmRldi9jaGFyLWZlLmMgICAg ICAgICAgICAgICAgIHwgIDQgKystLQo+ICBjaGFyZGV2L2NoYXItaW8uYyAgICAgICAgICAgICAg ICAgfCAgNiArKystLS0KPiAgY2hhcmRldi9jaGFyLW11eC5jICAgICAgICAgICAgICAgIHwgIDMg KystCj4gIGNoYXJkZXYvY2hhci1wdHkuYyAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCj4g IGNoYXJkZXYvY2hhci1zb2NrZXQuYyAgICAgICAgICAgICB8IDEzICsrKysrKystLS0tLS0KPiAg Y2hhcmRldi9jaGFyLXVkcC5jICAgICAgICAgICAgICAgIHwgIDggKysrKy0tLS0KPiAgY2hhcmRl di9jaGFyLXdpbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KPiAgY2hhcmRldi9jaGFyLmMgICAg ICAgICAgICAgICAgICAgIHwgMTUgKysrKysrKysrLS0tLS0tCj4gIGNoYXJkZXYvbXNtb3VzZS5j ICAgICAgICAgICAgICAgICB8ICA0ICsrLS0KPiAgY2hhcmRldi9zcGljZS5jICAgICAgICAgICAg ICAgICAgIHwgIDIgKy0KPiAgY2hhcmRldi90cmFjZS1ldmVudHMgICAgICAgICAgICAgIHwgIDIg Ky0KPiAgY2hhcmRldi93Y3RhYmxldC5jICAgICAgICAgICAgICAgIHwgIDkgKysrKystLS0tCj4g IGdkYnN0dWIuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKystLS0tCj4gIGh3L2J0 L2hjaS1jc3IuYyAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIGh3L2NoYXIvc2NscGNvbnNv bGUtbG0uYyAgICAgICAgICB8IDEyICsrKysrKystLS0tLQo+ICBody9jaGFyL3NwYXByX3Z0eS5j ICAgICAgICAgICAgICAgfCAgMiArLQo+ICBody9jaGFyL3Rlcm1pbmFsMzI3MC5jICAgICAgICAg ICAgfCAgNyArKysrLS0tCj4gIGh3L2NoYXIvdmlydGlvLWNvbnNvbGUuYyAgICAgICAgICB8ICAy ICstCj4gIGh3L2NoYXIveGVuX2NvbnNvbGUuYyAgICAgICAgICAgICB8IDI0ICsrKysrKysrKysr KysrKy0tLS0tLS0tLQo+ICBody9pcG1pL2lwbWlfYm1jX2V4dGVybi5jICAgICAgICAgfCAgMyAr Ky0KPiAgaHcvdHBtL3RwbV9lbXVsYXRvci5jICAgICAgICAgICAgIHwgIDcgKysrKy0tLQo+ICBo dy91c2IvcmVkaXJlY3QuYyAgICAgICAgICAgICAgICAgfCAgNiArKysrKy0KPiAgaHcvdmlydGlv L3Zob3N0LXVzZXIuYyAgICAgICAgICAgIHwgMTQgKysrKysrKystLS0tLS0KPiAgaW5jbHVkZS9j aGFyZGV2L2NoYXItZmQuaCAgICAgICAgIHwgIDIgKy0KPiAgaW5jbHVkZS9jaGFyZGV2L2NoYXIt ZmUuaCAgICAgICAgIHwgIDQgKystLQo+ICBpbmNsdWRlL2NoYXJkZXYvY2hhci1pby5oICAgICAg ICAgfCAgMiArLQo+ICBpbmNsdWRlL2NoYXJkZXYvY2hhci5oICAgICAgICAgICAgfCAgNCArKy0t Cj4gIGluY2x1ZGUvaHcvcHBjL3NwYXByX3Zpby5oICAgICAgICB8ICAyICstCj4gIGluY2x1ZGUv aHcvczM5MHgvZWJjZGljLmggICAgICAgICB8ICA4ICsrKystLS0tCj4gIGluY2x1ZGUvaHcvdmly dGlvL3ZpcnRpby1zZXJpYWwuaCB8ICAyICstCj4gIGluY2x1ZGUvc3lzZW11L3JlcGxheS5oICAg ICAgICAgICB8ICAyICstCj4gIG5ldC9maWx0ZXItbWlycm9yLmMgICAgICAgICAgICAgICB8ICAy ICstCj4gIHJlcGxheS9yZXBsYXktY2hhci5jICAgICAgICAgICAgICB8ICAyICstCj4gIHN0dWJz L3JlcGxheS5jICAgICAgICAgICAgICAgICAgICB8ICAyICstCj4gIHVpL2NvbnNvbGUuYyAgICAg ICAgICAgICAgICAgICAgICB8ICA2ICsrKy0tLQo+ICB1aS9ndGsuYyAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgMiArLQo+ICAzOCBmaWxlcyBjaGFuZ2VkLCAxMTkgaW5zZXJ0aW9ucygrKSwg OTYgZGVsZXRpb25zKC0pCj4KPiAtLQo+IDIuMjAuMQo+CgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZl bEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhlbnByb2plY3Qub3JnL21haWxt YW4vbGlzdGluZm8veGVuLWRldmVs