diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
index 9593b91452b97f9564989d4ab1df7a32905b4e64..6f6596cf2b190d0e1f18860a4384bacddbec472f 100644
--- a/sound/usb/endpoint.c
+++ b/sound/usb/endpoint.c
@@ -427,6 +427,7 @@ int snd_usb_parse_audio_endpoints(struct snd_usb_audio *chip, int iface_no)
 		if (snd_usb_parse_audio_format(chip, fp, format, fmt, stream, alts) < 0) {
 			kfree(fp->rate_table);
 			kfree(fp);
+			fp = NULL;
 			continue;
 		}