diff options
author | Amar Tumballi <amar@gluster.com> | 2009-07-17 22:41:44 +0000 |
---|---|---|
committer | Anand V. Avati <avati@dev.gluster.com> | 2009-07-20 14:28:53 -0700 |
commit | 632cce5e720acaa28ab680a6850f2aa8289d4628 (patch) | |
tree | 8cdc8afe41411ecde9c7a80b49162088bb09e08e /libglusterfs/src/common-utils.c | |
parent | 5be3c142978257032bd11ad420382859fc204702 (diff) |
fix build warnings in 'libglusterfs/'
return value of 'asprintf' was not checked, and the flow was
continuing without returning error, which could cause potential
segfaults in code (mostly possible during ENOMEM case).
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
BUG: 130 (build warnings)
URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=130
Diffstat (limited to 'libglusterfs/src/common-utils.c')
-rw-r--r-- | libglusterfs/src/common-utils.c | 60 |
1 files changed, 33 insertions, 27 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 2650e8fb55a..c68fd306660 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -96,7 +96,11 @@ gf_resolve_ip6 (const char *hostname, hints.ai_socktype = SOCK_STREAM; hints.ai_flags = AI_ADDRCONFIG; - asprintf (&port_str, "%d", port); + ret = asprintf (&port_str, "%d", port); + if (-1 == ret) { + gf_log ("resolver", GF_LOG_ERROR, "asprintf failed"); + return -1; + } if ((ret = getaddrinfo(hostname, port_str, &hints, &cache->first)) != 0) { gf_log ("resolver", GF_LOG_ERROR, "getaddrinfo failed (%s)", gai_strerror (ret)); @@ -269,82 +273,84 @@ gf_log_volume_file (FILE *specfp) static void gf_dump_config_flags (int fd) { + int ret = 0; + /* TODO: 'ret' is not checked properly, add this later */ - write (fd, "configuration details:\n", 22); + ret = write (fd, "configuration details:\n", 22); /* have argp */ #ifdef HAVE_ARGP - write (fd, "argp 1\n", 7); + ret = write (fd, "argp 1\n", 7); #endif /* ifdef if found backtrace */ #ifdef HAVE_BACKTRACE - write (fd, "backtrace 1\n", 12); + ret = write (fd, "backtrace 1\n", 12); #endif /* Berkeley-DB version has cursor->get() */ #ifdef HAVE_BDB_CURSOR_GET - write (fd, "bdb->cursor->get 1\n", 19); + ret = write (fd, "bdb->cursor->get 1\n", 19); #endif /* Define to 1 if you have the <db.h> header file. */ #ifdef HAVE_DB_H - write (fd, "db.h 1\n", 7); + ret = write (fd, "db.h 1\n", 7); #endif /* Define to 1 if you have the <dlfcn.h> header file. */ #ifdef HAVE_DLFCN_H - write (fd, "dlfcn 1\n", 8); + ret = write (fd, "dlfcn 1\n", 8); #endif /* define if fdatasync exists */ #ifdef HAVE_FDATASYNC - write (fd, "fdatasync 1\n", 12); + ret = write (fd, "fdatasync 1\n", 12); #endif /* Define to 1 if you have the `pthread' library (-lpthread). */ #ifdef HAVE_LIBPTHREAD - write (fd, "libpthread 1\n", 13); + ret = write (fd, "libpthread 1\n", 13); #endif /* define if llistxattr exists */ #ifdef HAVE_LLISTXATTR - write (fd, "llistxattr 1\n", 13); + ret = write (fd, "llistxattr 1\n", 13); #endif /* define if found setfsuid setfsgid */ #ifdef HAVE_SET_FSID - write (fd, "setfsid 1\n", 10); + ret = write (fd, "setfsid 1\n", 10); #endif /* define if found spinlock */ #ifdef HAVE_SPINLOCK - write (fd, "spinlock 1\n", 11); + ret = write (fd, "spinlock 1\n", 11); #endif /* Define to 1 if you have the <sys/epoll.h> header file. */ #ifdef HAVE_SYS_EPOLL_H - write (fd, "epoll.h 1\n", 10); + ret = write (fd, "epoll.h 1\n", 10); #endif /* Define to 1 if you have the <sys/extattr.h> header file. */ #ifdef HAVE_SYS_EXTATTR_H - write (fd, "extattr.h 1\n", 12); + ret = write (fd, "extattr.h 1\n", 12); #endif /* Define to 1 if you have the <sys/xattr.h> header file. */ #ifdef HAVE_SYS_XATTR_H - write (fd, "xattr.h 1\n", 10); + ret = write (fd, "xattr.h 1\n", 10); #endif /* define if found st_atim.tv_nsec */ #ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC - write (fd, "st_atim.tv_nsec 1\n", 18); + ret = write (fd, "st_atim.tv_nsec 1\n", 18); #endif /* define if found st_atimespec.tv_nsec */ #ifdef HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC - write (fd, "st_atimespec.tv_nsec 1\n",23); + ret = write (fd, "st_atimespec.tv_nsec 1\n",23); #endif /* Define to the full name and version of this package. */ @@ -352,7 +358,7 @@ gf_dump_config_flags (int fd) { char msg[128]; sprintf (msg, "package-string: %s\n", PACKAGE_STRING); - write (fd, msg, strlen (msg)); + ret = write (fd, msg, strlen (msg)); } #endif @@ -366,12 +372,12 @@ void gf_print_trace (int32_t signum) { extern FILE *gf_log_logfile; - int fd = fileno (gf_log_logfile); - char msg[1024]; - + char msg[1024] = {0,}; + int fd = fileno (gf_log_logfile); + int ret = 0; /* Pending frames, (if any), list them in order */ - write (fd, "pending frames:\n", 16); + ret = write (fd, "pending frames:\n", 16); { extern glusterfs_ctx_t *gf_global_ctx; glusterfs_ctx_t *ctx = gf_global_ctx; @@ -394,17 +400,17 @@ gf_print_trace (int32_t signum) tmp->root->type, gf_cbk_list[tmp->root->op]); - write (fd, msg, strlen (msg)); + ret = write (fd, msg, strlen (msg)); trav = trav->next; } - write (fd, "\n", 1); + ret = write (fd, "\n", 1); } sprintf (msg, "patchset: %s\n", GLUSTERFS_REPOSITORY_REVISION); - write (fd, msg, strlen (msg)); + ret = write (fd, msg, strlen (msg)); sprintf (msg, "signal received: %d\n", signum); - write (fd, msg, strlen (msg)); + ret = write (fd, msg, strlen (msg)); gf_dump_config_flags (fd); #if HAVE_BACKTRACE @@ -416,7 +422,7 @@ gf_print_trace (int32_t signum) size = backtrace (array, 200); backtrace_symbols_fd (&array[1], size-1, fd); sprintf (msg, "---------\n"); - write (fd, msg, strlen (msg)); + ret = write (fd, msg, strlen (msg)); } #endif /* HAVE_BACKTRACE */ |