unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
        ssize_t res;
+       if (!buf)
+               return -ENOMEM;
 
        pos += snprintf(buf+pos, len-pos, "state = %s\n",
                                szStates[priv->connect_status]);
        char *buf = (char *)addr;
        DECLARE_SSID_BUF(ssid);
        struct bss_descriptor * iter_bss;
+       if (!buf)
+               return -ENOMEM;
 
        pos += snprintf(buf+pos, len-pos,
                "# | ch  | rssi |       bssid       |   cap    | Qual | SSID \n");
        int p1, p2, p3, p4, p5, p6;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, user_buf, buf_size)) {
        struct sleep_params sp;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        ret = lbs_cmd_802_11_sleep_params(priv, CMD_ACT_GET, &sp);
        if (ret)
        int ret;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        offval.offset = priv->mac_offset;
        offval.value = 0;
        ssize_t res, buf_size;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        struct lbs_offset_value offval;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        int ret;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        offval.offset = priv->bbp_offset;
        offval.value = 0;
        ssize_t res, buf_size;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        struct lbs_offset_value offval;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        int ret;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        offval.offset = priv->rf_offset;
        offval.value = 0;
        ssize_t res, buf_size;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        struct lbs_offset_value offval;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        buf_size = min(count, len - 1);
        if (copy_from_user(buf, userbuf, buf_size)) {
        struct debug_data *d;
        unsigned long addr = get_zeroed_page(GFP_KERNEL);
        char *buf = (char *)addr;
+       if (!buf)
+               return -ENOMEM;
 
        p = buf;