42-Lyon-Projects / minishell-revamp

0 stars 1 forks source link

[BUG] Exit breaks when there is a string. Signals do not have the correct status code when exiting. Expanding vars is now breaking everything. #39

Closed LuyNagda closed 7 months ago

LuyNagda commented 7 months ago

Screenshot from 2024-02-21 16-29-26

Screenshot from 2024-02-21 16-30-49

➜ minishell-revamp git:(38-heredoc-bug) valgrind --leak-check=full --suppressions=supp.supp --show-leak-kinds=all ./minishell ==116147== Memcheck, a memory error detector ==116147== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al. ==116147== Using Valgrind-3.15.0 and LibVEX; rerun with -h for copyright info ==116147== Command: ./minishell ==116147== ➜ minishell : cat

^C➜ minishell : echo $? ==116147== Invalid read of size 1 ==116147== at 0x110B06: ft_strlen (ft_strlen.c:20) ==116147== by 0x110C50: ft_strdup (ft_strdup.c:23) ==116147== by 0x10AEB1: build_command_from_tokens (command_manager.c:42) ==116147== by 0x10D2FA: post_parsing (post_parsing.c:129) ==116147== by 0x109676: tokenize_and_run (main.c:55) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Address 0x4b26150 is 0 bytes inside a block of size 2 free'd ==116147== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x10CD34: process_expand (on_parsing.c:229) ==116147== by 0x10CBA9: treat_variable_keys (on_parsing.c:190) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Block was alloc'd at ==116147== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x110E71: ft_strjoin (ft_strjoin.c:37) ==116147== by 0x10CB07: treat_variable_keys (on_parsing.c:173) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== ==116147== Invalid read of size 1 ==116147== at 0x110CA3: ft_strdup (ft_strdup.c:27) ==116147== by 0x10AEB1: build_command_from_tokens (command_manager.c:42) ==116147== by 0x10D2FA: post_parsing (post_parsing.c:129) ==116147== by 0x109676: tokenize_and_run (main.c:55) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Address 0x4b26150 is 0 bytes inside a block of size 2 free'd ==116147== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x10CD34: process_expand (on_parsing.c:229) ==116147== by 0x10CBA9: treat_variable_keys (on_parsing.c:190) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Block was alloc'd at ==116147== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x110E71: ft_strjoin (ft_strjoin.c:37) ==116147== by 0x10CB07: treat_variable_keys (on_parsing.c:173) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== ==116147== Invalid read of size 1 ==116147== at 0x110C8E: ft_strdup (ft_strdup.c:29) ==116147== by 0x10AEB1: build_command_from_tokens (command_manager.c:42) ==116147== by 0x10D2FA: post_parsing (post_parsing.c:129) ==116147== by 0x109676: tokenize_and_run (main.c:55) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Address 0x4b26150 is 0 bytes inside a block of size 2 free'd ==116147== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x10CD34: process_expand (on_parsing.c:229) ==116147== by 0x10CBA9: treat_variable_keys (on_parsing.c:190) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Block was alloc'd at ==116147== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x110E71: ft_strjoin (ft_strjoin.c:37) ==116147== by 0x10CB07: treat_variable_keys (on_parsing.c:173) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== 0 ==116147== Invalid free() / delete / delete[] / realloc() ==116147== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x10EEF8: ft_flush_tokens (tokens_handler.c:101) ==116147== by 0x1096C3: tokenize_and_run (main.c:60) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Address 0x4b26150 is 0 bytes inside a block of size 2 free'd ==116147== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x10CD34: process_expand (on_parsing.c:229) ==116147== by 0x10CBA9: treat_variable_keys (on_parsing.c:190) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ==116147== Block was alloc'd at ==116147== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116147== by 0x110E71: ft_strjoin (ft_strjoin.c:37) ==116147== by 0x10CB07: treat_variable_keys (on_parsing.c:173) ==116147== by 0x10CE9F: on_parse (on_parsing.c:258) ==116147== by 0x109665: tokenize_and_run (main.c:53) ==116147== by 0x10978F: ft_shell_loop (main.c:85) ==116147== by 0x109893: main (main.c:104) ➜ minishell : $USER lunagda: command not found ==116407== Invalid free() / delete / delete[] / realloc() ==116407== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116407== by 0x10EEF8: ft_flush_tokens (tokens_handler.c:101) ==116407== by 0x10C540: free_and_exit (exec_utils.c:36) ==116407== by 0x10BF4D: exec_command (exec_pipex.c:66) ==116407== by 0x10C070: exec_cmd_loop (exec_pipex.c:84) ==116407== by 0x10C226: exec_cmd (exec_pipex.c:116) ==116407== by 0x10BB66: ft_dispatch_command (exec_dispatcher.c:80) ==116407== by 0x1096A3: tokenize_and_run (main.c:57) ==116407== by 0x10978F: ft_shell_loop (main.c:85) ==116407== by 0x109893: main (main.c:104) ==116407== Address 0x4b28860 is 0 bytes inside a block of size 8 free'd ==116407== at 0x483CA3F: free (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116407== by 0x10CD34: process_expand (on_parsing.c:229) ==116407== by 0x10CBA9: treat_variable_keys (on_parsing.c:190) ==116407== by 0x10CE9F: on_parse (on_parsing.c:258) ==116407== by 0x109665: tokenize_and_run (main.c:53) ==116407== by 0x10978F: ft_shell_loop (main.c:85) ==116407== by 0x109893: main (main.c:104) ==116407== Block was alloc'd at ==116407== at 0x483B7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so) ==116407== by 0x110F92: ft_strtrim (ft_strtrim.c:43) ==116407== by 0x10CB7A: treat_variable_keys (on_parsing.c:184) ==116407== by 0x10CE9F: on_parse (on_parsing.c:258) ==116407== by 0x109665: tokenize_and_run (main.c:53) ==116407== by 0x10978F: ft_shell_loop (main.c:85) ==116407== by 0x109893: main (main.c:104) ==116407== ==116407== ==116407== HEAP SUMMARY: ==116407== in use at exit: 204,827 bytes in 229 blocks ==116407== total heap usage: 1,411 allocs, 1,185 frees, 246,332 bytes allocated ==116407== ==116407== LEAK SUMMARY: ==116407== definitely lost: 0 bytes in 0 blocks ==116407== indirectly lost: 0 bytes in 0 blocks ==116407== possibly lost: 0 bytes in 0 blocks ==116407== still reachable: 0 bytes in 0 blocks ==116407== suppressed: 204,827 bytes in 229 blocks ==116407== ==116407== For lists of detected and suppressed errors, rerun with: -s ==116407== ERROR SUMMARY: 54 errors from 5 contexts (suppressed: 0 from 0)

vSKAH commented 7 months ago

i will fix that when i have finished the norme