Преглед изворни кода

Merge pull request #3433 from DavidLin1577/patch-5

Fixed a hidden stack overflow bug
Bernard Xiong пре 5 година
родитељ
комит
a7bcf90d78
1 измењених фајлова са 5 додато и 4 уклоњено
  1. 5 4
      bsp/fh8620/drivers/pwm.c

+ 5 - 4
bsp/fh8620/drivers/pwm.c

@@ -29,6 +29,7 @@
 #include "interrupt.h"
 #include "board_info.h"
 #include "inc/fh_driverlib.h"
+#include <rtthread.h>
 #include <rtdevice.h>
 #ifdef FH_PWM_DEBUG
 #define PRINT_PWM_DBG(fmt, args...)     \
@@ -185,14 +186,14 @@ int fh_pwm_probe(void *priv_data)
 
     PWM_Enable(pwm_obj, RT_FALSE);
 
-    pwm_dev = rt_malloc(sizeof(struct rt_device));
-    rt_memset(pwm_dev, 0, sizeof(struct rt_device));
+    pwm_dev = rt_calloc(1,sizeof(struct rt_device));
 
     if (pwm_dev == RT_NULL)
     {
-        rt_kprintf("ERROR: %s rt_device malloc failed\n", __func__);
+        rt_kprintf("ERROR: %s rt_device calloc failed\n", __func__);
+        return -RT_ENOMEM;
     }
-
+    
     pwm_dev->user_data = &pwm_drv;
     pwm_dev->open =fh_pwm_open;
     pwm_dev->close = fh_pwm_close;