From 8935d2f123878c31af69b6c6034069ad540b13c7 Mon Sep 17 00:00:00 2001 From: Antoine Jacoutot Date: Fri, 25 Apr 2014 14:37:59 +0200 Subject: [PATCH] openbsd: properly set len for gtkmountoperation-x11 sysctl(3) is the correct way to get the lenght for len in this case. Also drop unused headers and change style to match the rest of the file. --- gtk/gtkmountoperation-x11.c | 37 +++++++++++++++++++------------------ 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/gtk/gtkmountoperation-x11.c b/gtk/gtkmountoperation-x11.c index fe8beb6949..4ecef653c5 100644 --- a/gtk/gtkmountoperation-x11.c +++ b/gtk/gtkmountoperation-x11.c @@ -41,9 +41,6 @@ #include #if defined(__OpenBSD__) -#include -#include -#include #include #endif @@ -731,11 +728,11 @@ pid_get_parent (GPid pid) int mib[] = { CTL_KERN, KERN_PROC, KERN_PROC_PID, pid, sizeof(struct kinfo_proc), 0 }; - if (sysctl(mib, G_N_ELEMENTS (mib), NULL, &len, NULL, 0) == -1) + if (sysctl (mib, G_N_ELEMENTS (mib), NULL, &len, NULL, 0) == -1) return (-1); mib[5] = (len / sizeof(struct kinfo_proc)); - if (sysctl(mib, G_N_ELEMENTS (mib), &kp, &len, NULL, 0) < 0) + if (sysctl (mib, G_N_ELEMENTS (mib), &kp, &len, NULL, 0) < 0) return -1; ppid = kp.p_ppid; @@ -746,21 +743,23 @@ pid_get_parent (GPid pid) static gchar * pid_get_env (GPid pid, const gchar *key) { - size_t len = PATH_MAX; - char **strs = NULL; - char *ret; + size_t len; + char **strs; + char *ret = NULL; char *end; int key_len; int i; int mib[] = { CTL_KERN, KERN_PROC_ARGS, pid, KERN_PROC_ENV }; - strs = (char **)realloc(strs, len); + if (sysctl (mib, G_N_ELEMENTS (mib), NULL, &len, NULL, 0) == -1) + return ret; + + strs = g_malloc0 (len); key_len = strlen (key); - ret = NULL; - if (sysctl(mib, G_N_ELEMENTS (mib), strs, &len, NULL, 0) != -1) + if (sysctl (mib, G_N_ELEMENTS (mib), strs, &len, NULL, 0) != -1) { for (i = 0; strs[i] != NULL; i++) { @@ -783,18 +782,20 @@ pid_get_env (GPid pid, const gchar *key) static gchar * pid_get_command_line (GPid pid) { - size_t len = PATH_MAX; - char **strs = NULL; - char *ret = NULL; - char *end; + size_t len; + char **strs; + char *ret, *end; int mib[] = { CTL_KERN, KERN_PROC_ARGS, pid, KERN_PROC_ARGV }; - strs = (char **)realloc(strs, len); + if (sysctl (mib, G_N_ELEMENTS (mib), NULL, &len, NULL, 0) == -1) + return NULL; - if (sysctl(mib, G_N_ELEMENTS (mib), strs, &len, NULL, 0) == -1) { + strs = g_malloc0 (len); + + if (sysctl (mib, G_N_ELEMENTS (mib), strs, &len, NULL, 0) == -1) { g_free (strs); - return ret; + return NULL; } ret = g_strjoinv (" ", strs);