diff --git a/src/core/ngx_buf.c b/src/core/ngx_buf.c
index 97c94a3..2f0356f 100644
--- a/src/core/ngx_buf.c
+++ b/src/core/ngx_buf.c
@@ -13,11 +13,13 @@
 {
     ngx_buf_t *b;
 
-    if (!(b = ngx_calloc_buf(pool))) {
+    b = ngx_calloc_buf(pool);
+    if (b == NULL) {
         return NULL;
     }
 
-    if (!(b->start = ngx_palloc(pool, size))) {
+    b->start = ngx_palloc(pool, size);
+    if (b->start == NULL) {
         return NULL;
     }
 
@@ -49,14 +51,17 @@
     ngx_buf_t    *b;
     ngx_chain_t  *chain, *cl, **ll;
 
-    if (!(p = ngx_palloc(pool, bufs->num * bufs->size))) {
+    p = ngx_palloc(pool, bufs->num * bufs->size);
+    if (p == NULL) {
         return NULL;
     }
 
     ll = &chain;
 
     for (i = 0; i < bufs->num; i++) {
-        if (!(b = ngx_calloc_buf(pool))) {
+
+        b = ngx_calloc_buf(pool);
+        if (b == NULL) {
             return NULL;
         }
 
@@ -79,7 +84,8 @@
         p += bufs->size;
         b->end = p;
 
-        if (!(cl = ngx_alloc_chain_link(pool))) {
+        cl = ngx_alloc_chain_link(pool);
+        if (cl == NULL) {
             return NULL;
         }
 
@@ -106,7 +112,10 @@
     }
 
     while (in) {
-        ngx_test_null(cl, ngx_alloc_chain_link(pool), NGX_ERROR);
+        cl = ngx_alloc_chain_link(pool);
+        if (cl == NULL) {
+            return NGX_ERROR;
+        }
 
         cl->buf = in->buf;
         *ll = cl;
