.. | .. |
---|
694 | 694 | struct rndis_query *get; |
---|
695 | 695 | struct rndis_query_c *get_c; |
---|
696 | 696 | } u; |
---|
697 | | - int ret, buflen; |
---|
698 | | - int resplen, respoffs, copylen; |
---|
| 697 | + int ret; |
---|
| 698 | + size_t buflen, resplen, respoffs, copylen; |
---|
699 | 699 | |
---|
700 | 700 | buflen = *len + sizeof(*u.get); |
---|
701 | 701 | if (buflen < CONTROL_BUFFER_SIZE) |
---|
.. | .. |
---|
730 | 730 | |
---|
731 | 731 | if (respoffs > buflen) { |
---|
732 | 732 | /* Device returned data offset outside buffer, error. */ |
---|
733 | | - netdev_dbg(dev->net, "%s(%s): received invalid " |
---|
734 | | - "data offset: %d > %d\n", __func__, |
---|
735 | | - oid_to_string(oid), respoffs, buflen); |
---|
| 733 | + netdev_dbg(dev->net, |
---|
| 734 | + "%s(%s): received invalid data offset: %zu > %zu\n", |
---|
| 735 | + __func__, oid_to_string(oid), respoffs, buflen); |
---|
736 | 736 | |
---|
737 | 737 | ret = -EINVAL; |
---|
738 | 738 | goto exit_unlock; |
---|
739 | 739 | } |
---|
740 | 740 | |
---|
741 | | - if ((resplen + respoffs) > buflen) { |
---|
742 | | - /* Device would have returned more data if buffer would |
---|
743 | | - * have been big enough. Copy just the bits that we got. |
---|
744 | | - */ |
---|
745 | | - copylen = buflen - respoffs; |
---|
746 | | - } else { |
---|
747 | | - copylen = resplen; |
---|
748 | | - } |
---|
| 741 | + copylen = min(resplen, buflen - respoffs); |
---|
749 | 742 | |
---|
750 | 743 | if (copylen > *len) |
---|
751 | 744 | copylen = *len; |
---|