[En-Nut-Discussion] FYI: Integer overflow in tcp socket write function fixed

Coleman Brumley cbrumley at polarsoft.biz
Wed Sep 30 15:37:44 CEST 2015


Ole,

Thank you. I think I'm one of the "one off" Nut/OS users in that I don't
actively pull from the repository, but I still feel it's important to see
the patches in context of the change its addressing. 

Coleman

> -----Original Message-----
> From: en-nut-discussion-bounces at egnite.de [mailto:en-nut-discussion-
> bounces at egnite.de] On Behalf Of Ole Reinhardt
> Sent: Tuesday, September 29, 2015 5:21 PM
> To: en-nut-discussion at egnite.de
> Subject: Re: [En-Nut-Discussion] FYI: Integer overflow in tcp socket write
> function fixed
> 
> Hi Coleman,
> 
> Am 29.09.2015 23:01, schrieb Coleman Brumley:
> > I realize the patch is in SVN, but from a Nut/OS user perspective when
> > browsing this forum for issues it's nice when the patch is also
available.
> > It's nice to see the patch in the context of the problem it solves.
> >
> > So, could you send the patch to the list please?
> 
> Sure. Find it below.
> 
> In the past, we used to not publish patches on the mailing list. I'm even
not
> sure, if attachments are allowed on the list. So I'll past it inline
here...
> 
> best regards,
> 
> Ole
> 
> 
> 
> Index: nut/net/tcpsock.c
> ==========================================================
> =========
> --- nut/net/tcpsock.c	(Revision 6142)
> +++ nut/net/tcpsock.c	(Revision 6143)
> @@ -633,10 +633,10 @@
>          size = sock->so_rx_cnt - sock->so_rd_cnt;
>      if (size) {
>          NETBUF *nb;
> -        uint16_t rd_cnt;         /* Bytes read from NETBUF. */
> -        uint16_t nb_cnt;         /* Bytes left in NETBUF. */
> -        uint16_t ab_cnt;         /* Total bytes in app buffer. */
> -        uint16_t mv_cnt;         /* Bytes to move to app buffer. */
> +        int rd_cnt;         /* Bytes read from NETBUF. */
> +        int nb_cnt;         /* Bytes left in NETBUF. */
> +        int ab_cnt;         /* Total bytes in app buffer. */
> +        int mv_cnt;         /* Bytes to move to app buffer. */
> 
>          rd_cnt = sock->so_rd_cnt;
> 
> @@ -820,7 +820,7 @@
>  int NutTcpDeviceWrite(TCPSOCKET * sock, const void *buf, int size)  {
>      int rc;
> -    uint16_t sz;
> +    int sz;
>      /* hack alert for ICCAVR */
>      uint8_t *buffer = (uint8_t*) buf;
> 
> @@ -854,7 +854,7 @@
>           * send first part of data to NIC and store remaining
>           * bytes in buffer
>           */
> -        if ((uint16_t) size >= sock->so_devobsz) {
> +        if (size >= sock->so_devobsz) {
>              rc = size % sock->so_devobsz;
>              if (SendBuffer(sock, buffer, size - rc) < 0)
>                  return -1;
> 
> 
> 
> --
> kernel concepts GmbH            Tel: +49-271-771091-14
> Sieghuetter Hauptweg 48         Mob: +49-177-7420433
> D-57072 Siegen
> http://www.embedded-it.de
> http://www.kernelconcepts.de
> _______________________________________________
> http://lists.egnite.de/mailman/listinfo/en-nut-discussion



More information about the En-Nut-Discussion mailing list