From e265df74043faeaac9747583e785c257053f0c91 Mon Sep 17 00:00:00 2001 From: Luiz Augusto Von Dentz Date: Tue, 27 Apr 2010 16:25:39 +0300 Subject: [PATCH] obexd: Fix bug when creating directories (l)stat will return ENOENT when creating directories since mkdir hasn't been called yet, which should be ignored and not returned as an error. --- obexd/plugins/ftp.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/obexd/plugins/ftp.c b/obexd/plugins/ftp.c index 7b70ed095..e9cb96a42 100644 --- a/obexd/plugins/ftp.c +++ b/obexd/plugins/ftp.c @@ -370,12 +370,14 @@ static int ftp_setpath(struct obex_session *os, obex_object_t *obj, err = lstat(fullname, &dstat); if (err < 0) { - int err = errno; - debug("%s: %s(%d)", root ? "stat" : "lstat", - strerror(err), err); - if (err == ENOENT) + err = -errno; + + if (err == -ENOENT) goto not_found; + debug("%s: %s(%d)", root ? "stat" : "lstat", + strerror(-err), -err); + goto done; } @@ -395,10 +397,12 @@ not_found: } if (mkdir(fullname, 0755) < 0) { - err = -EPERM; + err = -errno; + debug("mkdir: %s(%d)", strerror(-err), -err); goto done; } + err = 0; set_folder(ftp, fullname); done: -- 2.47.3