diff options
author | The Android Open Source Project <initial-contribution@android.com> | 2010-01-12 15:18:29 -0800 |
---|---|---|
committer | The Android Open Source Project <initial-contribution@android.com> | 2010-01-12 15:18:29 -0800 |
commit | 7ef1f3046962c56f08e12bbc3c90e51464bb7935 (patch) | |
tree | f648558d9b1cb4f4366e16ee782c1f907024e365 | |
parent | 78c0fc9f82ef48ac90c3c717b0fecdb21643047c (diff) | |
download | mtpd-7ef1f3046962c56f08e12bbc3c90e51464bb7935.tar.gz |
android-2.1_r1 snapshot
-rw-r--r-- | mtpd.c | 18 |
1 files changed, 18 insertions, 0 deletions
@@ -337,6 +337,24 @@ void start_pppd(int pppox) memcpy(&args[4], pppd_argv, sizeof(char *) * pppd_argc); args[4 + pppd_argc] = NULL; +#ifdef ANDROID_CHANGES + { + char envargs[65536]; + char *tail = envargs; + int i; + /* Hex encode the arguments using [A-P] instead of [0-9A-F]. */ + for (i = 0; args[i]; ++i) { + char *p = args[i]; + do { + *tail++ = 'A' + ((*p >> 4) & 0x0F); + *tail++ = 'A' + (*p & 0x0F); + } while (*p++); + } + *tail = 0; + setenv("envargs", envargs, 1); + args[1] = NULL; + } +#endif execvp("pppd", args); log_print(FATAL, "Exec() %s", strerror(errno)); exit(1); /* Pretending a fatal error in pppd. */ |