55 lines
1.9 KiB
Diff
55 lines
1.9 KiB
Diff
From 13295dec0f567d6795522241fff6817a68b02033 Mon Sep 17 00:00:00 2001
|
|
From: Klaus Wenninger <klaus.wenninger@aon.at>
|
|
Date: Wed, 2 May 2018 20:07:12 +0200
|
|
Subject: [PATCH] Refactor: sbd-cluster: let scan do the job of proc-parsing
|
|
|
|
Now it would as well parse names containing spaces properly.
|
|
---
|
|
src/sbd-cluster.c | 9 ++++-----
|
|
1 file changed, 4 insertions(+), 5 deletions(-)
|
|
|
|
diff --git a/src/sbd-cluster.c b/src/sbd-cluster.c
|
|
index 8512f23..f5e9ff0 100644
|
|
--- a/src/sbd-cluster.c
|
|
+++ b/src/sbd-cluster.c
|
|
@@ -338,7 +338,7 @@ sbd_membership_destroy(gpointer user_data)
|
|
* \brief Get process ID and name associated with a /proc directory entry
|
|
*
|
|
* \param[in] entry Directory entry (must be result of readdir() on /proc)
|
|
- * \param[out] name If not NULL, a char[64] to hold the process name
|
|
+ * \param[out] name If not NULL, a char[16] to hold the process name
|
|
* \param[out] pid If not NULL, will be set to process ID of entry
|
|
*
|
|
* \return 0 on success, -1 if entry is not for a process or info not found
|
|
@@ -353,7 +353,7 @@ sbd_procfs_process_info(struct dirent *entry, char *name, int *pid)
|
|
int fd, local_pid;
|
|
FILE *file;
|
|
struct stat statbuf;
|
|
- char key[16] = { 0 }, procpath[128] = { 0 };
|
|
+ char procpath[128] = { 0 };
|
|
|
|
/* We're only interested in entries whose name is a PID,
|
|
* so skip anything non-numeric or that is too long.
|
|
@@ -396,8 +396,7 @@ sbd_procfs_process_info(struct dirent *entry, char *name, int *pid)
|
|
if (!file) {
|
|
return -1;
|
|
}
|
|
- if ((fscanf(file, "%15s%63s", key, name) != 2)
|
|
- || safe_str_neq(key, "Name:")) {
|
|
+ if (fscanf(file, "Name:\t%15[a-zA-Z0-9 _-]", name) != 1) {
|
|
fclose(file);
|
|
return -1;
|
|
}
|
|
@@ -484,7 +483,7 @@ static long unsigned int
|
|
find_pacemaker_remote(void)
|
|
{
|
|
DIR *dp;
|
|
- char entry_name[64];
|
|
+ char entry_name[16];
|
|
struct dirent *entry;
|
|
|
|
dp = opendir("/proc");
|
|
--
|
|
1.8.3.1
|
|
|