Indeed the previous libusb patch would overwrite previous altsettings, sorry that I didn't spot this. When I reviewed this original SRU, I just looked at the realloc()/memset() sequence, which seems fine at the first sight. realloc() by no way guarantees you that the reallocated pointer is still the same as the original one, so you would have to copy the previous contents if they are different. But the code does not do that and blindly assumes that the pointer remains constant.
However, Pawel's patch should avoid this regression and does not scribble over the previously written altsettings, so I'll sponsor this into lucid. This would still fail in some cases, but so it would in the final lucid version, so let's fix that regression first.
Indeed the previous libusb patch would overwrite previous altsettings, sorry that I didn't spot this. When I reviewed this original SRU, I just looked at the realloc()/memset() sequence, which seems fine at the first sight. realloc() by no way guarantees you that the reallocated pointer is still the same as the original one, so you would have to copy the previous contents if they are different. But the code does not do that and blindly assumes that the pointer remains constant.
However, Pawel's patch should avoid this regression and does not scribble over the previously written altsettings, so I'll sponsor this into lucid. This would still fail in some cases, but so it would in the final lucid version, so let's fix that regression first.