From: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
To: linux-nfc@lists.01.org
Subject: [neard][PATCH v2 54/73] unit: fix memory leaks in test-ndef-parse
Date: Mon, 19 Jul 2021 13:08:00 +0200 [thread overview]
Message-ID: <20210719110819.27340-55-krzysztof.kozlowski@canonical.com> (raw)
In-Reply-To: <20210719110819.27340-1-krzysztof.kozlowski@canonical.com>
[-- Attachment #1: Type: text/plain, Size: 3930 bytes --]
test-ndef-parse.c was not freeing fully the ndef records it got.
Replace the open-coded freeing with usage of near_ndef_records_free() to
solve libasan errors like:
Direct leak of 8 byte(s) in 1 object(s) allocated from:
#0 0x7f678a64b518 in calloc (/usr/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
#1 0x557597045e89 in parse_sp_payload src/ndef.c:1468
#2 0x557597045e89 in near_ndef_parse_msg src/ndef.c:2921
and valgring errors like:
2 bytes in 1 blocks are definitely lost in loss record 2 of 52
at 0x483C7F3: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
by 0x48CA698: g_malloc (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x48E4B3D: g_strndup (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x11C9F6: parse_record_header (ndef.c:1131)
by 0x11C9F6: parse_record_header (ndef.c:1038)
by 0x11E3D9: near_ndef_parse_msg (ndef.c:2855)
by 0x121E6B: test_ndef_uri (test-ndef-parse.c:213)
by 0x48ECDCD: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x48ECBCA: ??? (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x48ED2B9: g_test_run_suite (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x48ED2D4: g_test_run (in /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0.6600.1)
by 0x10F61A: main (test-ndef-parse.c:467)
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
---
unit/test-ndef-parse.c | 39 +++++----------------------------------
1 file changed, 5 insertions(+), 34 deletions(-)
diff --git a/unit/test-ndef-parse.c b/unit/test-ndef-parse.c
index 24f7d2f2c3ac..ace0f9038ad9 100644
--- a/unit/test-ndef-parse.c
+++ b/unit/test-ndef-parse.c
@@ -189,15 +189,6 @@ static uint8_t ho_hs_bt[] = {0x91, 0x02, 0x0A, 0x48, 0x73, 0x12, 0xD1, 0x02,
0x09, 0x44, 0x65, 0x79, 0x69, 0x63, 0x65, 0x4e,
0x61, 0x6d, 0x65};
-static void test_ndef_free_record(struct near_ndef_record *record)
-{
- g_free(record->header);
- g_free(record->type);
- g_free(record->data);
- g_free(record);
-
-}
-
static void test_ndef_uri(void)
{
GList *records;
@@ -222,9 +213,7 @@ static void test_ndef_uri(void)
if (g_test_verbose())
g_print("NDEF URI field: %s\n", record->uri->field);
- g_free(record->uri->field);
- g_free(record->uri);
- test_ndef_free_record(record);
+ near_ndef_records_free(records);
}
static void test_ndef_text(void)
@@ -255,11 +244,7 @@ static void test_ndef_text(void)
record->text->language_code);
}
- g_free(record->text->data);
- g_free(record->text->encoding);
- g_free(record->text->language_code);
- g_free(record->text);
- test_ndef_free_record(record);
+ near_ndef_records_free(records);
}
static void test_ndef_text_invalid_utf16(void)
@@ -305,10 +290,7 @@ static void test_ndef_single_sp(void)
g_print("NDEF SP URI field: %.*s\n", (int)uri->field_length,
(char *) uri->field);
- g_free(uri->field);
- g_free(uri);
- g_free(record->sp);
- test_ndef_free_record(record);
+ near_ndef_records_free(records);
}
static void test_ndef_title_sp(void)
@@ -359,16 +341,7 @@ static void test_ndef_title_sp(void)
g_print("NDEF SP Title Language: %s\n", text->language_code);
}
- g_free(uri->field);
- g_free(uri);
-
- g_free(text->data);
- g_free(text->encoding);
- g_free(text->language_code);
- g_free(text);
-
- g_free(record->sp);
- test_ndef_free_record(record);
+ near_ndef_records_free(records);
}
static void test_ndef_aar(void)
@@ -395,9 +368,7 @@ static void test_ndef_aar(void)
if (g_test_verbose())
g_print("NDEF AAR package: %s\n", record->aar->package);
- g_free(record->aar->package);
- g_free(record->aar);
- test_ndef_free_record(record);
+ near_ndef_records_free(records);
}
static void test_ndef_ho_hs_bt(void)
--
2.27.0
next prev parent reply other threads:[~2021-07-19 11:08 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-19 11:07 [neard][PATCH v2 00/73] combined fixes - warnings, memory leaks, memory corruption Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 01/73] Drop empty NEWS Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 02/73] nfctool: fix adapter_get_devices() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 03/73] nfctool: fix adapter_print_target() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 04/73] nfctool: fix adapter_print_info() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 05/73] nfctool: fix adapter_compare_idx() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 06/73] nfctool: fix nfctool_send_dep_link_up() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 07/73] nfctool: fix nfctool_print_and_remove_snl() cast-function-type Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 08/73] nfctool: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 09/73] nfctool: pass the format as string literal Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 10/73] dbus: fix -Wformat in near_dbus_encode_string() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 11/73] unit: pass real UTF-8 for testing text NDEF Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 12/73] ndef: check UTF-16 text payload length Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 13/73] ndef: silence clang -Wcast-align warning Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 14/73] ndef: use NDEF_TEXT_RECORD_UTF16_STATUS define Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 15/73] ndef: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 16/73] ndef: make freeing near_ndef_message reusable Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 17/73] se: fix multiple apdu definitions Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 18/73] se: silence clang -Wcast-align warning Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 19/73] se: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 20/73] adapter: adjust indentation of continued arguments Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 21/73] adapter: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 22/73] gdbus: do not shadow global 'pending' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 23/73] nciattach: fix poll.h include location Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 24/73] nciattach: do not shadow other local 'opt' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 25/73] bluetooth: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 26/73] nfctype2: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 27/73] nfctype3: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 28/73] nfctype5: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 29/73] nfctype5: fix returning uninitialized stack value in t5_tag_is_ti_pro() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 30/73] mifare: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 31/73] mifare: use unsigned int to suppress compiler -Wstrict-overflow Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 32/73] p2p: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 33/73] npp: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 34/73] device: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 35/73] manager: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 36/73] netlink: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 37/73] gdbus: annotate printf-like functions as accepting format Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 38/73] snep-send: fix near_ndef_message memory leak Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 39/73] tag: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 40/73] tag: do not open-code freeing ndef message Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 41/73] snep: " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 42/73] snep: remove useless NULL-ify of local pointer variable Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 43/73] snep: fix double free of GSList Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 44/73] snep: fix fragmented response memory leaks Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 45/73] unit: use g_assert_cmpstr() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 46/73] unit: use g_assert_cmpint() and g_assert_cmpuint() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 47/73] unit: fix recv() and send() return types Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 48/73] unit: use g_assert_null() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 49/73] unit: use g_assert_cmpmem() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 50/73] unit: use proper pointer to uint8_t in test_snep_read_recv_fragments() Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 51/73] unit: do not shadow global 'text' variable (-Wshadow) Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 52/73] unit: do not shadow global 'uri' " Krzysztof Kozlowski
2021-07-19 11:07 ` [neard][PATCH v2 53/73] unit: use proper format for integers (-Wformat) Krzysztof Kozlowski
2021-07-19 11:08 ` Krzysztof Kozlowski [this message]
2021-07-19 11:08 ` [neard][PATCH v2 55/73] unit: do not open-code freeing ndef message Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 56/73] unit: fix memory leaks in test-ndef-build Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 57/73] unit: fix memory leaks in test-snep-read error paths Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 58/73] unit: fix record memory leak in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 59/73] unit: fix records GList " Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 60/73] unit: do not pass NULL to memcpy() Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 61/73] unit: do not search for headers locally where they do not exist Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 62/73] unit: remove duplicated invalid definitions in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 63/73] unit: remove duplicated definitions in test-ndef-parse Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 64/73] unit: add few asserts in test-snep-read Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 65/73] HACKING: refine required packages Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 66/73] build: fix setting CFLAGS on dash shell (Alpine Linux) Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 67/73] build: add more compiler warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 68/73] build: enable -Wshadow and -Wformat-signedness " Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 69/73] build: enable -Wformat=2 warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 70/73] build: enable -Wunsafe-loop-optimizations and -Wstrict-overflow=2 warnings Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 71/73] build: fix missing usage of PIE check result Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 72/73] build: add support for GCC sanitizers (asan, lsan and ubsan) Krzysztof Kozlowski
2021-07-19 11:08 ` [neard][PATCH v2 73/73] AUTHORS: Mention Krzysztof Kozlowski's contributions Krzysztof Kozlowski
2021-07-19 11:21 ` [neard][PATCH v2 00/73] combined fixes - warnings, memory leaks, memory corruption Krzysztof Kozlowski
2021-07-19 16:32 ` Mark Greer
2021-08-01 23:11 ` Mark Greer
2021-08-02 7:51 ` Krzysztof Kozlowski
2021-08-04 7:56 ` Krzysztof Kozlowski
2021-08-05 16:14 ` Mark Greer
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210719110819.27340-55-krzysztof.kozlowski@canonical.com \
--to=krzysztof.kozlowski@canonical.com \
--cc=linux-nfc@lists.01.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).