[CRIU] [PATCH] proc: Use fopen_proc in fdinfo parsing

Pavel Emelyanov xemul at parallels.com
Tue Sep 16 13:38:34 PDT 2014


Signed-off-by: Pavel Emelyanov <xemul at parallels.com>

---

diff --git a/proc_parse.c b/proc_parse.c
index e311f40..24e3bc4 100644
--- a/proc_parse.c
+++ b/proc_parse.c
@@ -1127,7 +1127,7 @@ nodata:
 
 #define fdinfo_field(str, field)	!strncmp(str, field":", sizeof(field))
 
-static int parse_fdinfo_pid_s(char *pid, int fd, int type,
+static int parse_fdinfo_pid_s(int pid, int fd, int type,
 		int (*cb)(union fdinfo_entries *e, void *arg), void *arg)
 {
 	FILE *f;
@@ -1135,8 +1135,7 @@ static int parse_fdinfo_pid_s(char *pid, int fd, int type,
 	bool entry_met = false;
 	int ret = -1;
 
-	sprintf(str, "/proc/%s/fdinfo/%d", pid, fd);
-	f = fopen(str, "r");
+	f = fopen_proc(pid, "fdinfo/%d", fd);
 	if (!f) {
 		pr_perror("Can't open %s to parse", str);
 		return -1;
@@ -1402,16 +1401,13 @@ out:
 int parse_fdinfo_pid(int pid, int fd, int type,
 		int (*cb)(union fdinfo_entries *e, void *arg), void *arg)
 {
-	char pid_s[10];
-
-	sprintf(pid_s, "%d", pid);
-	return parse_fdinfo_pid_s(pid_s, fd, type, cb, arg);
+	return parse_fdinfo_pid_s(pid, fd, type, cb, arg);
 }
 
 int parse_fdinfo(int fd, int type,
 		int (*cb)(union fdinfo_entries *e, void *arg), void *arg)
 {
-	return parse_fdinfo_pid_s("self", fd, type, cb, arg);
+	return parse_fdinfo_pid_s(PROC_SELF, fd, type, cb, arg);
 }
 
 static int parse_file_lock_buf(char *buf, struct file_lock *fl,


More information about the CRIU mailing list