aboutsummaryrefslogtreecommitdiffstats
path: root/builtins/common.c
diff options
context:
space:
mode:
authorcvpcs <root@cvpcs.org>2010-06-06 18:06:59 -0500
committerDan Pasanen <dan.pasanen@gmail.com>2014-10-02 14:25:51 -0500
commitd15864548dc4512f1bd735a8182beadbcbfb787b (patch)
tree63fc7f3fc18fe11ca202806f50fce4b1cc348484 /builtins/common.c
parent36c12725cbe10a552d3a1524eb324a10ffbfab8e (diff)
downloadandroid_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.tar.gz
android_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.tar.bz2
android_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.zip
fixed some problems with bash
Diffstat (limited to 'builtins/common.c')
-rw-r--r--builtins/common.c17
1 files changed, 15 insertions, 2 deletions
diff --git a/builtins/common.c b/builtins/common.c
index 5f8a1e1..811ca1b 100644
--- a/builtins/common.c
+++ b/builtins/common.c
@@ -553,10 +553,23 @@ get_working_directory (for_whom)
if (the_current_working_directory == 0)
{
-#if defined (GETCWD_BROKEN)
- the_current_working_directory = getcwd (0, PATH_MAX);
+#if defined (__BIONIC__)
+ /**
+ * This is a really lame work around to try to stop bash from flipping
+ * out if PWD isn't defined when starting it up on bionic
+ */
+ char *d = (char *)malloc(sizeof(char) * PATH_MAX);
+ the_current_working_directory = getcwd (d, sizeof(d));
+ if (the_current_working_directory)
+ the_current_working_directory = d;
+ else
+ FREE (d);
#else
+# if defined (GETCWD_BROKEN)
+ the_current_working_directory = getcwd (0, PATH_MAX);
+# else
the_current_working_directory = getcwd (0, 0);
+# endif
#endif
if (the_current_working_directory == 0)
{