Переглянути джерело

rtac: add error check for misc_register in init

Add error check to validate the return value of misc_register.
Clean up memory on an error to avoid memory leak.

CRs-Fixed: 2204093
Change-Id: I8b94bacdc312fa410a7825c7e25764517469c19b
Signed-off-by: Vignesh Kulothungan <[email protected]>
Vignesh Kulothungan 7 роки тому
батько
коміт
865440767a
1 змінених файлів з 8 додано та 2 видалено
  1. 8 2
      dsp/rtac.c

+ 8 - 2
dsp/rtac.c

@@ -2046,17 +2046,23 @@ int __init rtac_init(void)
 		goto nomem;
 	}
 
-	return misc_register(&rtac_misc);
+	if (misc_register(&rtac_misc) != 0) {
+		kzfree(rtac_adm_buffer);
+		kzfree(rtac_asm_buffer);
+		kzfree(rtac_afe_buffer);
+		kzfree(rtac_voice_buffer);
+	}
 nomem:
 	return -ENOMEM;
 }
 
 void rtac_exit(void)
 {
+	misc_deregister(&rtac_misc);
 	kzfree(rtac_adm_buffer);
 	kzfree(rtac_asm_buffer);
 	kzfree(rtac_afe_buffer);
-	misc_deregister(&rtac_misc);
+	kzfree(rtac_voice_buffer);
 }
 
 MODULE_DESCRIPTION("SoC QDSP6v2 Real-Time Audio Calibration driver");