int ls_rtask(char *host, char **argv, int options) { char **envp; int numEnv; int ret; for (numEnv = 0; environ[numEnv]; numEnv++) ; envp = (char **)calloc(numEnv + 1, sizeof(char *)); for (numEnv = 0; environ[numEnv]; numEnv ++) envp[numEnv] = strdup(environ[numEnv]); envp[numEnv] = NULL; ret = ls_rtaske(host, argv, options, envp); if (envp) { for (numEnv = 0; envp[numEnv]; numEnv++) FREEUP(envp[numEnv]); FREEUP(envp); } return ret; }
int ls_rtask(char *host, char **argv, int options) { char **envp; char *sp; int numEnv; int i; int ret; for (numEnv = 0; environ[numEnv]; numEnv++) ; envp = (char **)calloc(numEnv + 2, sizeof(char *)); i = 0; for (numEnv = 0; environ[numEnv]; numEnv ++) { if ((is_replace_user_map_env!=0) && (sp = strstr(environ[numEnv], "WIN_USER_MAPPING")) != NULL) continue; envp[i] = strdup(environ[numEnv]); i++; } if (user_map_value && user_map_value[0] != NULL) { envp[i] = strdup(user_map_value); i++; } envp[i] = NULL; ret = ls_rtaske(host, argv, options, envp); if (envp) { for (numEnv = 0; envp[numEnv]; numEnv++) FREEUP(envp[numEnv]); FREEUP(envp); } return ret; }