Changeset 1569a9b in mainline for uspace/lib


Ignore:
Timestamp:
2017-12-24T16:40:33Z (8 years ago)
Author:
GitHub <noreply@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
48fd597
Parents:
a1026da
git-author:
Jiří Zárevúcky <zarevucky.jiri@…> (2017-12-24 16:40:33)
git-committer:
GitHub <noreply@…> (2017-12-24 16:40:33)
Message:

The "not-so-obvious" error handling tweaks. (#9)

Some more changes to enable type-checking with errno_t. Some of the "fixes" here don't quite feel right, but a proper solution would be a more elaborate refactoring of the surrounding code.

Location:
uspace/lib
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/include/io/klog.h

    ra1026da r1569a9b  
    4949#define KLOG_PRINTF(lvl, fmt, ...) ({ \
    5050        char *_s; \
    51         int _c = asprintf(&_s, fmt, ##__VA_ARGS__); \
    52         if (_c >= 0) { \
    53                 _c = klog_write((lvl), _s, str_size(_s)); \
     51        int _rc = ENOMEM; \
     52        if (asprintf(&_s, fmt, ##__VA_ARGS__) >= 0) { \
     53                _rc = klog_write((lvl), _s, str_size(_s)); \
    5454                free(_s); \
    5555        }; \
    56         (_c >= 0); \
     56        (_rc != EOK); \
    5757})
    5858
  • uspace/lib/http/src/request.c

    ra1026da r1569a9b  
    9696        ssize_t meth_size = http_encode_method(NULL, 0, req->method, req->path);
    9797        if (meth_size < 0)
    98                 return meth_size;
     98                return EINVAL;
    9999        size_t size = meth_size;
    100100       
     
    102102                ssize_t header_size = http_header_encode(header, NULL, 0);
    103103                if (header_size < 0)
    104                         return header_size;
     104                        return EINVAL;
    105105                size += header_size;
    106106        }
     
    116116        if (written < 0) {
    117117                free(buf);
    118                 return written;
     118                return EINVAL;
    119119        }
    120120        pos += written;
     
    125125                if (written < 0) {
    126126                        free(buf);
    127                         return written;
     127                        return EINVAL;
    128128                }
    129129                pos += written;
  • uspace/lib/usbdev/src/recognise.c

    ra1026da r1569a9b  
    8888                char *str = NULL; \
    8989                int __rc = asprintf(&str, format, ##__VA_ARGS__); \
    90                 if (__rc > 0) { \
    91                         __rc = usb_add_match_id((match_ids), (score), str); \
    92                 } \
    93                 if (__rc != EOK) { \
    94                         free(str); \
    95                         return __rc; \
     90                if (__rc >= 0) { \
     91                        int __rc = usb_add_match_id((match_ids), (score), str); \
     92                        if (__rc != EOK) { \
     93                                free(str); \
     94                                return __rc; \
     95                        } \
     96                } else { \
     97                        return ENOMEM; \
    9698                } \
    9799        } while (0)
Note: See TracChangeset for help on using the changeset viewer.