Commit 7d68101f authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

Prevent uploading to a URL that has no file name part.

parent aa50a008
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -7,6 +7,11 @@
                                  Changelog

Daniel (2 March 2006)
- FTP upload without a file name part in the URL now causes
  curl_easy_perform() to return CURLE_URL_MALFORMAT. Previously it allowed the
  upload but named the file "(nil)" (without the quotes). Test case 524
  verifies.

- Added a check for getprotobyname in configure so that it'll be used, thanks
  to Gisle Vanem's change the other day.

@@ -15,6 +20,10 @@ Daniel (28 February 2006)
  are out of file handles very early in curl's code where it makes sure that
  0, 1 and 2 aren't gonna be used by the lib for transfers.

Daniel (27 February 2006)
- Marty Kuhrt pointed out that there were two VMS-specific files missing in
  the release archive.

Version 7.15.2 (27 February 2006)

Daniel (22 February 2006)
+1 −1
Original line number Diff line number Diff line
@@ -7,7 +7,7 @@ Curl and libcurl 7.15.3
 Number of public functions in libcurl:    46
 Amount of public web site mirrors:        31
 Number of known libcurl bindings:         32
 Number of contributors:                   474
 Number of contributors:                   487

This release includes the following changes:

+7 −0
Original line number Diff line number Diff line
@@ -3816,6 +3816,13 @@ CURLcode ftp_parse_url_path(struct connectdata *conn)
    ftp->file=NULL; /* instead of point to a zero byte, we make it a NULL
                       pointer */

  if(data->set.upload && !ftp->file &&
     (!ftp->no_transfer || conn->bits.no_body)) {
    /* We need a file name when uploading. Return error! */
    failf(data, "Uploading to a URL without a file name!");
    return CURLE_URL_MALFORMAT;
  }

  ftp->cwddone = FALSE; /* default to not done */

  if(ftp->prevpath) {

tests/data/test524

0 → 100644
+44 −0
Original line number Diff line number Diff line
<info>
<keywords>
FTP
UPLOAD
</keywords>
</info>

#
# Server-side
<reply>
</reply>

#
# Client-side
<client>
<server>
ftp
</server>
<tool>
lib524
</tool>
 <name>
FTP upload with target URL ending with slash
 </name>
# first URL then proxy
 <command>
ftp://%HOSTIP:%FTPPORT/path/to/
</command>
</client>

#
# Verify data after the test has been "shot"
<verify>
<protocol>
USER anonymous
PASS curl_by_daniel@haxx.se
PWD
</protocol>

# 3 is CURLE_URL_MALFORMAT
<errorcode>
3
</errorcode>
</verify>
+6 −2
Original line number Diff line number Diff line
@@ -5,7 +5,7 @@
#                            | (__| |_| |  _ <| |___
#                             \___|\___/|_| \_\_____|
#
# Copyright (C) 1998 - 2005, Daniel Stenberg, <daniel@haxx.se>, et al.
# Copyright (C) 1998 - 2006, Daniel Stenberg, <daniel@haxx.se>, et al.
#
# This software is licensed as described in the file COPYING, which
# you should have received as part of this distribution. The terms
@@ -40,7 +40,7 @@ SUPPORTFILES = first.c test.h
# These are all libcurl test programs
noinst_PROGRAMS = lib500 lib501 lib502 lib503 lib504 lib505 lib506 lib507 \
  lib508 lib509 lib510 lib511 lib512 lib513 lib514 lib515 lib516 lib517 \
  lib518 lib519 lib520 lib521 lib523
  lib518 lib519 lib520 lib521 lib523 lib524

lib500_SOURCES = lib500.c $(SUPPORTFILES)
lib500_LDADD = $(LIBDIR)/libcurl.la
@@ -133,3 +133,7 @@ lib521_DEPENDENCIES = $(LIBDIR)/libcurl.la
lib523_SOURCES = lib523.c $(SUPPORTFILES)
lib523_LDADD = $(LIBDIR)/libcurl.la
lib523_DEPENDENCIES = $(LIBDIR)/libcurl.la

lib524_SOURCES = lib524.c $(SUPPORTFILES)
lib524_LDADD = $(LIBDIR)/libcurl.la
lib524_DEPENDENCIES = $(LIBDIR)/libcurl.la
Loading