Return-Path: Message-ID: <20110617134150.947246py42dt6ni8@mail.hendrik-sattler.de> Date: Fri, 17 Jun 2011 13:41:50 +0200 From: Hendrik Sattler To: Luiz Augusto von Dentz Cc: linux-bluetooth@vger.kernel.org Subject: Re: [PATCH obexd 2/4] Add basic support for action commands on ftp driver References: <1308292007-2111-1-git-send-email-luiz.dentz@gmail.com> <1308292007-2111-2-git-send-email-luiz.dentz@gmail.com> <20110617121950.13306qfj8egbctc0@mail.hendrik-sattler.de> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Sender: linux-bluetooth-owner@vger.kernel.org List-ID: Hi, Zitat von Luiz Augusto von Dentz : > On Fri, Jun 17, 2011 at 1:19 PM, Hendrik Sattler > wrote: >> Zitat von Luiz Augusto von Dentz : >>> >>> +static char *ftp_build_filename(struct ftp_session *ftp, const char >>> *destname) >>> +{ >>> + ? ? ? char *filename; >>> + >>> + ? ? ? /* DestName can either be relative or absolute (FTP style) */ >>> + ? ? ? if (g_path_is_absolute(destname)) >>> + ? ? ? ? ? ? ? filename = g_build_filename(destname, NULL); >>> + ? ? ? else >>> + ? ? ? ? ? ? ? filename = g_build_filename(ftp->folder, destname, NULL); >>> + >>> + ? ? ? /* Check if destination is inside root path */ >>> + ? ? ? if (g_str_has_prefix(filename, ftp->folder)) >>> + ? ? ? ? ? ? ? return filename; >>> + >>> + ? ? ? g_free(filename); >>> + >>> + ? ? ? return NULL; >>> +} >> >> You should also catch stuff like the UNC path stuff and drive letter >> prefixes. No need to support all the sick stuff :-/ > > If g_build_filename doesn't care I don't see why we should care. Because strings like "\\..." and "C:\..." may return 0 with g_path_is_absolute(destname) and you then use a wrong directory that is not according to spec. HS