umb string padding

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

umb string padding

Gerhard Roth-2
This patch fixes a bug in the padding of umb strings. Instead of
padding the right position, umb_padding() would always zero padding
bytes at the beginning of the buffer.

For the two callers of umb_addstr(), this won't hurt in
umb_send_connect() since the first value in the buffer is the
session id, which is zero anyway. But for umb_setpin() we might try to
change the wrong type of PIN, iff the length of the PIN is not a
multiple of 4.

Gerhard


Index: sys/dev/usb/if_umb.c
===================================================================
RCS file: /cvs/src/sys/dev/usb/if_umb.c,v
retrieving revision 1.7
diff -u -p -u -p -r1.7 if_umb.c
--- sys/dev/usb/if_umb.c 21 Nov 2016 08:19:36 -0000 1.7
+++ sys/dev/usb/if_umb.c 22 Nov 2016 11:41:49 -0000
@@ -1211,7 +1211,7 @@ umb_padding(void *data, int len, size_t
  int np = 0;
 
  while (len < sz && (len % 4) != 0) {
- *p++ = '\0';
+ *(p + len) = '\0';
  len++;
  np++;
  }