if (G.exiting <= 0 && G_traps && G_traps[0] && G_traps[0][0]) {
char *argv[3];
/* argv[0] is unused */
- argv[1] = G_traps[0];
+ argv[1] = xstrdup(G_traps[0]); /* copy, since EXIT trap handler may modify G_traps[0] */
argv[2] = NULL;
G.exiting = 1; /* prevent EXIT trap recursion */
/* Note: G_traps[0] is not cleared!