diff options
Diffstat (limited to 'libglusterfs')
-rw-r--r-- | libglusterfs/src/common-utils.c | 21 | ||||
-rw-r--r-- | libglusterfs/src/common-utils.h | 2 |
2 files changed, 23 insertions, 0 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index 18c2a39d60e..0486409a849 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -3669,6 +3669,27 @@ out: return running; } +/* Check if the pid is > 0 */ +gf_boolean_t +gf_valid_pid (const char *pid, int length) +{ + gf_boolean_t ret = _gf_true; + pid_t value = 0; + char *end_ptr = NULL; + + if (length <= 0) { + ret = _gf_false; + goto out; + } + + value = strtol (pid, &end_ptr, 10); + if (value <= 0) { + ret = _gf_false; + } +out: + return ret; +} + static int dht_is_linkfile_key (dict_t *this, char *key, data_t *value, void *data) { diff --git a/libglusterfs/src/common-utils.h b/libglusterfs/src/common-utils.h index b77b7ad97de..14cd6964f76 100644 --- a/libglusterfs/src/common-utils.h +++ b/libglusterfs/src/common-utils.h @@ -796,6 +796,8 @@ int gf_thread_create_detached (pthread_t *thread, gf_boolean_t gf_is_service_running (char *pidfile, int *pid); +gf_boolean_t +gf_valid_pid (const char *pid, int length); int gf_skip_header_section (int fd, int header_len); |