summaryrefslogtreecommitdiff
path: root/file_io
diff options
context:
space:
mode:
authorStefan Fritsch <sf@apache.org>2011-10-15 21:26:14 +0000
committerStefan Fritsch <sf@apache.org>2011-10-15 21:26:14 +0000
commitb95187b2aca19acc3b156d4f777c257d6b84c60d (patch)
tree8aa56e5b65132f2554aff083dcd035034a716bc1 /file_io
parent86d2fc083ca42d5aaf146afb2a9a23911dcf86ea (diff)
downloadapr-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.c3
-rw-r--r--file_io/os2/open.c2
-rw-r--r--file_io/unix/open.c8
-rw-r--r--file_io/win32/open.c4
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;