diff options
Diffstat (limited to 'rbutil/ipodpatcher')
-rw-r--r-- | rbutil/ipodpatcher/ipodio-win32-scsi.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/rbutil/ipodpatcher/ipodio-win32-scsi.c b/rbutil/ipodpatcher/ipodio-win32-scsi.c index 5843ce5d2f..81e2023f75 100644 --- a/rbutil/ipodpatcher/ipodio-win32-scsi.c +++ b/rbutil/ipodpatcher/ipodio-win32-scsi.c | |||
@@ -110,7 +110,10 @@ int ipod_scsi_inquiry(struct ipod_t* ipod, int page_code, | |||
110 | FALSE); | 110 | FALSE); |
111 | 111 | ||
112 | if (status) { | 112 | if (status) { |
113 | memcpy(buf, sptwb.DataBuf, returned); | 113 | /* W32 sometimes returns more bytes with additional garbage. |
114 | * Make sure to not copy that garbage. */ | ||
115 | memcpy(buf, sptwb.DataBuf, | ||
116 | (DWORD)bufsize >= returned ? returned : (DWORD)bufsize); | ||
114 | return 0; | 117 | return 0; |
115 | } else { | 118 | } else { |
116 | return -1; | 119 | return -1; |