Hello. In lib/crt1.c
I keep insisting that evaluating the return of __getmainargs is important.

This:
__tgetmainargs( &argc, &argv, &env, _dowildcard, &start_info);
ret = _tmain(argc, argv, env);
exit(ret);

should be:

if (__tgetmainargs( &argc, &argv, &env, _dowildcard, &start_info) < 0) {
    ExitProcess(-1);
} else {
    ret = _tmain(argc, argv, env);
    exit(ret);
}

and:

__tgetmainargs(&wargc, &wargv, &wenv, _dowildcard, &start_info);

should be:
if (__tgetmainargs(&wargc, &wargv, &wenv, _dowildcard, &start_info) < 0) {
    ExitProcess(-1);
}

Questions, for what purpose is the function _runtmain ?

I think that this line:

return _tmain(argc, argv, NULL);

should be:

*wenv = NULL;
return _tmain(argc, argv, wenv);

for avoid a possible null dereference of wenv inside _tmain.
_______________________________________________
Tinycc-devel mailing list
[email protected]
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

Reply via email to