Bug:
Bitwise & operator is used during cleanup. Boolean noclean bitwise compared with integer app_argc causes unexpected behavior when app_argc is even.
|
if (app_argc & !noclean) { |
|
for (int i = 0; i < app_argc; i++) |
|
free(app_argv[i]); |
|
free(app_argv); |
|
} |
Fix:
if (app_argc && !noclean) {