Revert "Check directory is able to create files for various -out option"

This reverts commit 555c94a0db9661428da0a45cb32b9f002324eefd.

Reviewed-by: Andy Polyakov <appro@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/6033)
diff --git a/apps/opt.c b/apps/opt.c
index a47451c..a9d163a 100644
--- a/apps/opt.c
+++ b/apps/opt.c
@@ -613,17 +613,13 @@
  */
 int opt_next(void)
 {
-    char *p, *estr;
+    char *p;
     const OPTIONS *o;
     int ival;
     long lval;
     unsigned long ulval;
     ossl_intmax_t imval;
     ossl_uintmax_t umval;
-#if !defined(_WIN32) && !defined(__VMS)
-    char *c;
-    int oerrno;
-#endif
 
     /* Look at current arg; at end of the list? */
     arg = NULL;
@@ -680,13 +676,13 @@
             /* Just a string. */
             break;
         case '/':
-            if (app_isdir(arg) > 0)
+            if (app_isdir(arg) >= 0)
                 break;
             BIO_printf(bio_err, "%s: Not a directory: %s\n", prog, arg);
             return -1;
         case '<':
             /* Input file. */
-            if (strcmp(arg, "-") == 0 || app_access(arg, R_OK) == 0)
+            if (strcmp(arg, "-") == 0 || app_access(arg, R_OK) >= 0)
                 break;
             BIO_printf(bio_err,
                        "%s: Cannot open input file %s, %s\n",
@@ -694,38 +690,11 @@
             return -1;
         case '>':
             /* Output file. */
-#if !defined(_WIN32) && !defined(__VMS)
-            c = OPENSSL_strdup(arg);
-            if (c == NULL) {
-                BIO_printf(bio_err,
-                           "%s: Memory allocation failure\n", prog);
-                return -1;
-            }
-            oerrno = errno;
-            errno = 0;
-            if (strcmp(arg, "-") == 0
-                || (app_access(app_dirname(c), W_OK) == 0
-                    && app_isdir(arg) <= 0
-                    && (app_access(arg, W_OK) == 0 || errno == ENOENT))) {
-                OPENSSL_free(c);
+            if (strcmp(arg, "-") == 0 || app_access(arg, W_OK) >= 0 || errno == ENOENT)
                 break;
-            }
-            OPENSSL_free(c);
-            if (errno == 0)
-                /* only possible if 'arg' is a directory */
-                estr = "is a directory";
-            else
-                estr = strerror(errno);
-            errno = oerrno;
-#else
-            if (strcmp(arg, "-") == 0 || app_access(arg, W_OK) == 0
-                || errno == ENOENT)
-                break;
-            estr = strerror(errno);
-#endif
             BIO_printf(bio_err,
                        "%s: Cannot open output file %s, %s\n",
-                       prog, arg, estr);
+                       prog, arg, strerror(errno));
             return -1;
         case 'p':
         case 'n':