https://bugs.launchpad.net/hplip/+bug/1672256 memcpy should never be used with overlapping memory regions --- a/io/hpmud/musb.c +++ b/io/hpmud/musb.c @@ -775,7 +775,7 @@ static int device_id(int fd, unsigned char *buffer, int size) len = size-1; /* leave byte for zero termination */ if (len > 2) len -= 2; - memcpy(buffer, buffer+2, len); /* remove length */ + memmove(buffer, buffer+2, len); /* remove length */ buffer[len]=0; DBG("read actual device_id successfully fd=%d len=%d\n", fd, len);