Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OMEMO - memory leaks at startup #1584

Closed
pasis opened this issue Jul 17, 2021 · 0 comments
Closed

OMEMO - memory leaks at startup #1584

pasis opened this issue Jul 17, 2021 · 0 comments
Assignees
Milestone

Comments

@pasis
Copy link
Member

pasis commented Jul 17, 2021

omemo_on_connect() doesn't free error on G_FILE_ERROR_NOENT error. This leads to memory leaks in 4 places if OMEMO is not configured.

Expected Behavior

No memory leaks.

Current Behavior

==9474== 42 (16 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,695 of 3,317
==9474==    at 0x483879F: malloc (vg_replace_malloc.c:307)
==9474==    by 0x5D1BE38: g_malloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D33DE1: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFF874: g_error_new_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFFB7B: g_set_error_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D0D2EF: g_key_file_load_from_file (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x1B3770: omemo_on_connect (omemo.c:264)
==9474==    by 0x15C645: sv_ev_login_account_success (server_events.c:97)
==9474==    by 0x147D48: session_login_success (session.c:299)
==9474==    by 0x64BC014: _handle_bind (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64C162C: handler_fire_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64BDECA: _handle_stream_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==
==9474== 42 (16 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,696 of 3,317
==9474==    at 0x483879F: malloc (vg_replace_malloc.c:307)
==9474==    by 0x5D1BE38: g_malloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D33DE1: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFF874: g_error_new_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFFB7B: g_set_error_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D0D2EF: g_key_file_load_from_file (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x1B37AE: omemo_on_connect (omemo.c:275)
==9474==    by 0x15C645: sv_ev_login_account_success (server_events.c:97)
==9474==    by 0x147D48: session_login_success (session.c:299)
==9474==    by 0x64BC014: _handle_bind (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64C162C: handler_fire_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64BDECA: _handle_stream_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==
==9474== 42 (16 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,697 of 3,317
==9474==    at 0x483879F: malloc (vg_replace_malloc.c:307)
==9474==    by 0x5D1BE38: g_malloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D33DE1: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFF874: g_error_new_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFFB7B: g_set_error_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D0D2EF: g_key_file_load_from_file (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x1B380E: omemo_on_connect (omemo.c:283)
==9474==    by 0x15C645: sv_ev_login_account_success (server_events.c:97)
==9474==    by 0x147D48: session_login_success (session.c:299)
==9474==    by 0x64BC014: _handle_bind (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64C162C: handler_fire_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64BDECA: _handle_stream_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==
==9474== 42 (16 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,698 of 3,317
==9474==    at 0x483879F: malloc (vg_replace_malloc.c:307)
==9474==    by 0x5D1BE38: g_malloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D33DE1: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFF874: g_error_new_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5CFFB7B: g_set_error_literal (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x5D0D2EF: g_key_file_load_from_file (in /usr/lib64/libglib-2.0.so.0.6600.4)
==9474==    by 0x1B386E: omemo_on_connect (omemo.c:291)
==9474==    by 0x15C645: sv_ev_login_account_success (server_events.c:97)
==9474==    by 0x147D48: session_login_success (session.c:299)
==9474==    by 0x64BC014: _handle_bind (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64C162C: handler_fire_stanza (in /usr/lib64/libstrophe.so.0.0.0)
==9474==    by 0x64BDECA: _handle_stream_stanza (in /usr/lib64/libstrophe.so.0.0.0)

Possible Solution

Free error.

Steps to Reproduce (for bugs)

  1. Build profanity with OMEMO support
  2. Run it under valgrind and connect to your account

Environment

Master branch 45fd229.

@jubalh jubalh modified the milestones: 0.11.0, 0.11.1 Jul 19, 2021
@jubalh jubalh closed this as completed in 4641537 Jul 22, 2021
@jubalh jubalh self-assigned this Jul 22, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants