From a79e73a1b113b3285f988068074928f7205be9bb Mon Sep 17 00:00:00 2001 From: Jouni Malinen Date: Thu, 26 Feb 2009 22:00:29 +0200 Subject: [PATCH] WPS UFD: Use mkdir() instead of system("mkdir ..") --- src/wps/wps_ufd.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/wps/wps_ufd.c b/src/wps/wps_ufd.c index f76379ec5..cec8d9049 100644 --- a/src/wps/wps_ufd.c +++ b/src/wps/wps_ufd.c @@ -94,6 +94,17 @@ static int get_file_name(struct wps_context *wps, int registrar, } +static int ufd_mkdir(const char *path) +{ + if (mkdir(path, S_IRWXU) < 0 && errno != EEXIST) { + wpa_printf(MSG_ERROR, "WPS (UFD): Failed to create directory " + "'%s': %d (%s)", path, errno, strerror(errno)); + return -1; + } + return 0; +} + + static int init_ufd(struct wps_context *wps, int registrar) { int write_f; @@ -110,13 +121,12 @@ static int init_ufd(struct wps_context *wps, int registrar) } if (write_f) { - os_snprintf(temp, sizeof(temp), - "mkdir -p %s/SMRTNTKY/WFAWSC", path); - if (system(temp) != 0) { - wpa_printf(MSG_ERROR, "WPS (UFD): Failed " - "to mkdir"); + os_snprintf(temp, sizeof(temp), "%s/SMRTNTKY", path); + if (ufd_mkdir(temp)) + return -1; + os_snprintf(temp, sizeof(temp), "%s/SMRTNTKY/WFAWSC", path); + if (ufd_mkdir(temp)) return -1; - } } os_snprintf(temp, sizeof(temp), "%s/SMRTNTKY/WFAWSC/%s", path,