Skip to content

Commit a9309e4

Browse files
authored
[flang][runtime] Fix seg fault in intrinsic execute_command_line (#78126)
Fixes #77975
1 parent 8dd0d95 commit a9309e4

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

flang/runtime/execute.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -70,8 +70,8 @@ int TerminationCheck(int status, const Descriptor *cmdstat,
7070
if (!cmdstat) {
7171
terminator.Crash("Execution error with system status code: %d", status);
7272
} else {
73-
CheckAndStoreIntToDescriptor(cmdstat, EXECL_ERR, terminator);
74-
CopyCharsToDescriptor(*cmdmsg, "Execution error");
73+
StoreIntToDescriptor(cmdstat, EXECL_ERR, terminator);
74+
CheckAndCopyCharsToDescriptor(cmdmsg, "Execution error");
7575
}
7676
}
7777
#ifdef _WIN32
@@ -86,17 +86,17 @@ int TerminationCheck(int status, const Descriptor *cmdstat,
8686
terminator.Crash(
8787
"Invalid command quit with exit status code: %d", exitStatusVal);
8888
} else {
89-
CheckAndStoreIntToDescriptor(cmdstat, INVALID_CL_ERR, terminator);
90-
CopyCharsToDescriptor(*cmdmsg, "Invalid command line");
89+
StoreIntToDescriptor(cmdstat, INVALID_CL_ERR, terminator);
90+
CheckAndCopyCharsToDescriptor(cmdmsg, "Invalid command line");
9191
}
9292
}
9393
#if defined(WIFSIGNALED) && defined(WTERMSIG)
9494
if (WIFSIGNALED(status)) {
9595
if (!cmdstat) {
9696
terminator.Crash("killed by signal: %d", WTERMSIG(status));
9797
} else {
98-
CheckAndStoreIntToDescriptor(cmdstat, SIGNAL_ERR, terminator);
99-
CopyCharsToDescriptor(*cmdmsg, "killed by signal");
98+
StoreIntToDescriptor(cmdstat, SIGNAL_ERR, terminator);
99+
CheckAndCopyCharsToDescriptor(cmdmsg, "killed by signal");
100100
}
101101
}
102102
#endif
@@ -105,8 +105,8 @@ int TerminationCheck(int status, const Descriptor *cmdstat,
105105
if (!cmdstat) {
106106
terminator.Crash("stopped by signal: %d", WSTOPSIG(status));
107107
} else {
108-
CheckAndStoreIntToDescriptor(cmdstat, SIGNAL_ERR, terminator);
109-
CopyCharsToDescriptor(*cmdmsg, "stopped by signal");
108+
StoreIntToDescriptor(cmdstat, SIGNAL_ERR, terminator);
109+
CheckAndCopyCharsToDescriptor(cmdmsg, "stopped by signal");
110110
}
111111
}
112112
#endif

0 commit comments

Comments
 (0)