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/scheduler.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/scheduler.c')
-rw-r--r-- | libglusterfs/src/scheduler.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libglusterfs/src/scheduler.c b/libglusterfs/src/scheduler.c index 0b5df51b3ed..f799b52fcf6 100644 --- a/libglusterfs/src/scheduler.c +++ b/libglusterfs/src/scheduler.c @@ -35,14 +35,19 @@ get_scheduler (xlator_t *xl, const char *name) volume_opt_list_t *vol_opt = NULL; char *sched_file = NULL; void *handle = NULL; - + int ret = 0; + if (name == NULL) { gf_log ("scheduler", GF_LOG_ERROR, "'name' not specified, EINVAL"); return NULL; } - asprintf (&sched_file, "%s/%s.so", SCHEDULERDIR, name); + ret = asprintf (&sched_file, "%s/%s.so", SCHEDULERDIR, name); + if (-1 == ret) { + gf_log ("scheduler", GF_LOG_ERROR, "asprintf failed"); + return NULL; + } gf_log ("scheduler", GF_LOG_DEBUG, "attempt to load file %s.so", name); |