Fix memory leak in usb_interface_descriptor error path 43/238843/3 accepted/tizen_6.0_unified accepted/tizen_6.0_unified_hotfix accepted/tizen_6.5_unified accepted/tizen_7.0_unified accepted/tizen_7.0_unified_hotfix tizen_6.0 tizen_6.0_hotfix tizen_6.5 tizen_7.0 tizen_7.0_hotfix accepted/tizen/6.0/unified/20201030.110949 accepted/tizen/6.0/unified/hotfix/20201102.234959 accepted/tizen/6.0/unified/hotfix/20201103.051456 accepted/tizen/6.5/unified/20211029.014207 accepted/tizen/7.0/unified/20221110.062547 accepted/tizen/7.0/unified/hotfix/20221116.111040 accepted/tizen/unified/20200723.161322 submit/tizen/20200721.112435 submit/tizen_6.0/20201029.205502 submit/tizen_6.0_hotfix/20201102.192902 submit/tizen_6.0_hotfix/20201103.115102 submit/tizen_6.5/20211028.163501 tizen_6.0.m2_release tizen_6.5.m2_release tizen_7.0_m2_release
authorKarol Lewandowski <k.lewandowsk@samsung.com>
Fri, 17 Jul 2020 23:04:10 +0000 (01:04 +0200)
committerMichal Bloch <m.bloch@partner.samsung.com>
Tue, 21 Jul 2020 11:04:12 +0000 (11:04 +0000)
usbi_reallocf() will leak memory if passed pointer has members to free.

Change-Id: I183dce6067905c92a1cf373e67902244c52e9fed
Signed-off-by: lokilee73 <changjoo.lee@samsung.com>
libusb/descriptor.c

index 4c9435f..da34b38 100644 (file)
@@ -228,7 +228,8 @@ static int parse_interface(libusb_context *ctx,
        while (size >= INTERFACE_DESC_LENGTH) {
                struct libusb_interface_descriptor *altsetting =
                        (struct libusb_interface_descriptor *) usb_interface->altsetting;
-               altsetting = usbi_reallocf(altsetting,
+               /* can't use usbi_realloc() as we need to free libusb_interface_descriptor members - see clear_interface() */
+               altsetting = realloc(altsetting,
                        sizeof(struct libusb_interface_descriptor) *
                        (usb_interface->num_altsetting + 1));
                if (!altsetting) {