Lines Matching refs:argv
87 char **argv = NULL;
143 if (arg && (argv = calloc(1, asize + sizeof (uintptr_t))) == NULL) {
150 if (argv)
151 free(argv);
157 * Walk up the 32-bit stack, filling in the 64-bit argv and envp
165 if (argv) {
167 argv[i] = (char *)(uintptr_t)(*(caddr32_t *)stackp);
170 argv[argc] = 0;
196 if (argv)
197 (void) memcpy(argv + aptrcount, (void *)stackp, strpoolsz);
206 * changes to the argv and envp arrays.
208 if (argv) {
209 char *argv_null = (char *)argv + asize;
211 reloc = (char *)(argv + aptrcount) - (char *)
215 if (argv[i] != NULL) {
216 str = (argv[i] += reloc);
217 if (str < (char *)argv ||
218 str >= (char *)argv + asize)
219 argv[i] = argv_null;
222 *arg = argv;
257 * reconstruct an argv-like argument list from the target process
268 char **argv = NULL;
272 char *argv_null; /* Known null in the returned argv */
303 if ((argv = malloc(asize + sizeof (uintptr_t))) == NULL)
305 argv_null = (char *)argv + asize;
316 if (argv)
317 free(argv);
326 if (argv) {
329 (uintptr_t)u->u_argv, argv, asize) != asize) {
330 free(argv);
335 argv[argc] = 0;
340 (void) memcpy(envp, &argv[argc + 1], esize);
343 /* read most of the initial stack (excluding argv) */
352 * Relocate and sanity check the argv array. Entries which have
357 if (argv) {
358 /* relocate the argv[] addresses */
359 offset = (char *)argv - (char *)u->u_argv;
361 if (argv[i] != NULL) {
362 str = (argv[i] += offset);
363 if (str < (char *)argv ||
364 str >= (char *)argv + asize)
365 argv[i] = argv_null;
368 argv[i] = NULL;
369 *arg = argv;