From fbc604f565fe1ed4993de0ab84fe81168017f2fb Mon Sep 17 00:00:00 2001 From: Johan Hedberg Date: Mon, 21 Jul 2008 12:08:16 +0300 Subject: [PATCH] obexd: Fix error code for all folder creation cases --- obexd/src/ftp.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/obexd/src/ftp.c b/obexd/src/ftp.c index e730ece82..9ab1042c7 100644 --- a/obexd/src/ftp.c +++ b/obexd/src/ftp.c @@ -427,12 +427,19 @@ void ftp_setpath(obex_t *obex, obex_object_t *obj) goto done; not_found: - if (nonhdr[0] == 0 && mkdir(fullname, 0755) >= 0) { - g_free(os->current_folder); - os->current_folder = g_strdup(fullname); - OBEX_ObjectSetRsp(obj, OBEX_RSP_SUCCESS, OBEX_RSP_SUCCESS); - } else + if (nonhdr[0] != 0) { OBEX_ObjectSetRsp(obj, OBEX_RSP_NOT_FOUND, OBEX_RSP_NOT_FOUND); + goto done; + } + + if (mkdir(fullname, 0755) < 0) { + OBEX_ObjectSetRsp(obj, OBEX_RSP_FORBIDDEN, OBEX_RSP_FORBIDDEN); + goto done; + } + + g_free(os->current_folder); + os->current_folder = g_strdup(fullname); + OBEX_ObjectSetRsp(obj, OBEX_RSP_SUCCESS, OBEX_RSP_SUCCESS); done: g_free(fullname); -- 2.47.3