浏览代码

[components/drivers] update pipe.c

Fixed stackover flow bug when create pipe->fifo
David Lin 5 年之前
父节点
当前提交
ff09587d23
共有 1 个文件被更改,包括 5 次插入0 次删除
  1. 5 0
      components/drivers/src/pipe.c

+ 5 - 0
components/drivers/src/pipe.c

@@ -330,6 +330,11 @@ rt_err_t  rt_pipe_open (rt_device_t device, rt_uint16_t oflag)
     if (pipe->fifo == RT_NULL)
     {
         pipe->fifo = rt_ringbuffer_create(pipe->bufsz);
+        if (pipe->fifo == RT_NULL)
+        {
+            rt_mutex_release(&(pipe->lock));
+            return -RT_ENOMEM;
+        }
     }
 
     rt_mutex_release(&(pipe->lock));