Prechádzať zdrojové kódy

[components/drivers] update pipe.c

Fixed stackover flow bug when create pipe->fifo
David Lin 5 rokov pred
rodič
commit
ff09587d23
1 zmenil súbory, kde vykonal 5 pridanie a 0 odobranie
  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));