mirror of
https://github.com/freebsd/freebsd-src
synced 2024-10-07 00:50:50 +00:00
sh: make smark a static variable instead of a local in main()
We are modifying it after setjmp and then accessing it after the jump, so it cannot be a local. MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D40415
This commit is contained in:
parent
1320520ba4
commit
2178e8c27a
|
@ -100,7 +100,13 @@ static char *find_dot_file(char *);
|
|||
int
|
||||
main(int argc, char *argv[])
|
||||
{
|
||||
struct stackmark smark = {0}, smark2;
|
||||
/*
|
||||
* As smark is accessed after a longjmp, it cannot be a local in main().
|
||||
* The C standard specifies that the values of non-volatile local
|
||||
* variables are unspecified after a jump if modified between the
|
||||
* setjmp and longjmp.
|
||||
*/
|
||||
static struct stackmark smark, smark2;
|
||||
volatile int state;
|
||||
char *shinit;
|
||||
|
||||
|
|
Loading…
Reference in a new issue