diff options
author | Stefan Fritsch <sf@apache.org> | 2011-10-15 21:26:14 +0000 |
---|---|---|
committer | Stefan Fritsch <sf@apache.org> | 2011-10-15 21:26:14 +0000 |
commit | b95187b2aca19acc3b156d4f777c257d6b84c60d (patch) | |
tree | 8aa56e5b65132f2554aff083dcd035034a716bc1 /file_io | |
parent | 86d2fc083ca42d5aaf146afb2a9a23911dcf86ea (diff) | |
download | apr-b95187b2aca19acc3b156d4f777c257d6b84c60d.tar.gz |
backport r979891:
Fix various issues found by cppcheck
- error handling issues
- use of uninitialized data
- null pointer dereference
- unused variables
- memory/fd leaks
- broken code in threadproc/beos/proc.c
git-svn-id: https://svn.apache.org/repos/asf/apr/apr/branches/1.5.x@1183724 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'file_io')
-rw-r--r-- | file_io/netware/pipe.c | 3 | ||||
-rw-r--r-- | file_io/os2/open.c | 2 | ||||
-rw-r--r-- | file_io/unix/open.c | 8 | ||||
-rw-r--r-- | file_io/win32/open.c | 4 |
4 files changed, 8 insertions, 9 deletions
diff --git a/file_io/netware/pipe.c b/file_io/netware/pipe.c index 3e8f55935..f88f1e625 100644 --- a/file_io/netware/pipe.c +++ b/file_io/netware/pipe.c @@ -26,7 +26,6 @@ static apr_status_t pipeblock(apr_file_t *thepipe) { #ifdef USE_FLAGS - int err; unsigned long flags; if (fcntl(thepipe->filedes, F_GETFL, &flags) != -1) @@ -49,7 +48,6 @@ static apr_status_t pipeblock(apr_file_t *thepipe) static apr_status_t pipenonblock(apr_file_t *thepipe) { #ifdef USE_FLAGS - int err; unsigned long flags; errno = 0; @@ -138,7 +136,6 @@ APR_DECLARE(apr_status_t) apr_os_pipe_put(apr_file_t **file, APR_DECLARE(apr_status_t) apr_file_pipe_create(apr_file_t **in, apr_file_t **out, apr_pool_t *pool) { int filedes[2]; - int err; if (pipe(filedes) == -1) { return errno; diff --git a/file_io/os2/open.c b/file_io/os2/open.c index a1a55202f..52fa18ab2 100644 --- a/file_io/os2/open.c +++ b/file_io/os2/open.c @@ -142,7 +142,7 @@ APR_DECLARE(apr_status_t) apr_file_close(apr_file_t *file) if (file->buffered) apr_thread_mutex_destroy(file->mutex); - return APR_SUCCESS; + return status; } diff --git a/file_io/unix/open.c b/file_io/unix/open.c index 48c63beb5..3b7dc27c2 100644 --- a/file_io/unix/open.c +++ b/file_io/unix/open.c @@ -179,13 +179,17 @@ APR_DECLARE(apr_status_t) apr_file_open(apr_file_t **new, if (!(flag & APR_FOPEN_NOCLEANUP)) { int flags; - if ((flags = fcntl(fd, F_GETFD)) == -1) + if ((flags = fcntl(fd, F_GETFD)) == -1) { + close(fd); return errno; + } if ((flags & FD_CLOEXEC) == 0) { flags |= FD_CLOEXEC; - if (fcntl(fd, F_SETFD, flags) == -1) + if (fcntl(fd, F_SETFD, flags) == -1) { + close(fd); return errno; + } } } diff --git a/file_io/win32/open.c b/file_io/win32/open.c index cb438750d..e683fa561 100644 --- a/file_io/win32/open.c +++ b/file_io/win32/open.c @@ -145,7 +145,6 @@ void *res_name_from_filename(const char *file, int global, apr_pool_t *pool) apr_wchar_t *wpre, *wfile, *ch; apr_size_t n = strlen(file) + 1; apr_size_t r, d; - apr_status_t rv; if (apr_os_level >= APR_WIN_2000) { if (global) @@ -169,7 +168,7 @@ void *res_name_from_filename(const char *file, int global, apr_pool_t *pool) wfile = apr_palloc(pool, (r + n) * sizeof(apr_wchar_t)); wcscpy(wfile, wpre); d = n; - if ((rv = apr_conv_utf8_to_ucs2(file, &n, wfile + r, &d))) { + if (apr_conv_utf8_to_ucs2(file, &n, wfile + r, &d)) { return NULL; } for (ch = wfile + r; *ch; ++ch) { @@ -186,7 +185,6 @@ void *res_name_from_filename(const char *file, int global, apr_pool_t *pool) apr_size_t n = strlen(file) + 1; #if !APR_HAS_UNICODE_FS - apr_status_t rv; apr_size_t r, d; char *pre; |