From f4cc54cb4746ae5a6d63438aae811f6543b13774 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Sat, 19 Jan 2013 23:08:12 +0100
Subject: [PATCH] formadd: reject trying to read a directory where a file is
 expected

Bug: http://curl.haxx.se/mail/archive-2013-01/0017.html
Reported by: Ulrich Doehner
---
 lib/formdata.c |    7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lib/formdata.c b/lib/formdata.c
index 6d78b79..480de98 100644
--- a/lib/formdata.c
+++ b/lib/formdata.c
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2012, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2013, 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
@@ -830,9 +830,10 @@ static CURLcode AddFormData(struct FormData **formp,
          file */
       if(!strequal("-", newform->line)) {
         struct_stat file;
-        if(!stat(newform->line, &file)) {
+        if(!stat(newform->line, &file) && S_ISREG(file.st_mode))
           *size += file.st_size;
-        }
+        else
+          return CURLE_BAD_FUNCTION_ARGUMENT;
       }
     }
   }
-- 
1.7.10.4

