-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Что делал:
extern "C" {
// clang-format off
#define SCFG_APP_CONFIG(XX) \
XX((input), SCFG_STRING, 'i', SCFG_NO_DEFAULT, "input video path") \
/**/
// clang-format on
#include "scfg/scfg.h"
}
int main(int argc, char *argv[])
{
// init config
if (!scfg_init(argc, argv))
exit(1);
return 0;
} Собрал c ASAN, получаю:
=================================================================
==10000==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 13 byte(s) in 1 object(s) allocated from:
#0 0x7f0ed8af6538 in strdup (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x77538)
#1 0x5643b445cfec in scfg_parse_argv bazel-out/k8-opt/bin/external/com_github_cdump_scfg/_virtual_includes/scfg/scfg/scfg.h:257
#2 0x5643b445d3db in scfg_init bazel-out/k8-opt/bin/external/com_github_cdump_scfg/_virtual_includes/scfg/scfg/scfg.h:386
#3 0x5643b445ddc2 in main video-detector/tools/turntable.cc:21
#4 0x7f0ed794dbf6 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x21bf6)
SUMMARY: AddressSanitizer: 13 byte(s) leaked in 1 allocation(s).Ругается на scfg/scfg.h:36
#define PARSE_SCFG_STRING(name, val) cfg.name = strdup(val ? val : "")Предложения: не клонировать строку.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels