Skip to contentSkip to conversation

osm_subnet.c: Fix memory leak caused by commit dc0760cb8088fbe079e19682570a884ba01e94ff

PATCH Superseded Hal Rosenstock 2 participants 2 messages Aug 20, 2013 1 message not in the archive InfiniBand

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 osm_subnet.c: Fix memory leak caused by commit dc0760cb8088fbe079e19682570a884ba01e94ff

From: Vladimir Koushnir <vladimirk-VPRAkNaXOzVWk0Htik3J/[email protected]>

double strdup for p_opt->dump_files_dir is causing memory leak

---

opensm/osm_subnet.c +0 -0
index 7ab1671..4b5ef38 100644
@@ -1498,7 +1498,7 @@ void osm_subn_set_default_opt(IN osm_subn_opt_t *

p_opt)
p_opt->dump_files_dir = getenv("OSM_TMP_DIR");
if (!p_opt->dump_files_dir || !(*p_opt->dump_files_dir))
- p_opt->dump_files_dir = strdup(OSM_DEFAULT_TMP_DIR);
+ p_opt->dump_files_dir = (char *) OSM_DEFAULT_TMP_DIR;
p_opt->dump_files_dir = strdup(p_opt->dump_files_dir); p_opt->log_file = strdup(OSM_DEFAULT_LOG_FILE); p_opt->log_max_size = 0;
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html

A message that is not in the archive (sent off-list or not yet received): 52136886.7090905-LDSdmyG8hGV8YrgS2mwiifqBs+8SCbDb@public.gmane.org

#2 lore raw
Quoted 12 lines · Hal Rosenstock

From: Vladimir Koushnir <vladimirk-VPRAkNaXOzVWk0Htik3J/[email protected]>

double strdup for p_opt->dump_files_dir is causing memory leak

---

opensm/osm_subnet.c +0 -0
index 7ab1671..4b5ef38 100644

opensm/osm_subnet.c void osm_subn_set_default_opt(IN osm_subn_opt_t * · line 1504

Quoted 8 lines
opensm/osm_subnet.c +1 -1
@@ -1498,7 +1498,7 @@ void osm_subn_set_default_opt(IN osm_subn_opt_t *
 p_opt)
   	p_opt->dump_files_dir = getenv("OSM_TMP_DIR");
  	if (!p_opt->dump_files_dir || !(*p_opt->dump_files_dir))
-		p_opt->dump_files_dir = strdup(OSM_DEFAULT_TMP_DIR);
+		p_opt->dump_files_dir = (char *) OSM_DEFAULT_TMP_DIR;
  	p_opt->dump_files_dir = strdup(p_opt->dump_files_dir);
  	p_opt->log_file = strdup(OSM_DEFAULT_LOG_FILE);
  	p_opt->log_max_size = 0;

How about avoiding the memory leak via the construct below, which has the advantage that no cast is necessary ?

if (!p_opt->dump_files_dir || !(*p_opt->dump_files_dir))

		p_opt->dump_files_dir = strdup(OSM_DEFAULT_TMP_DIR);
	else
	   	p_opt->dump_files_dir = strdup(p_opt->dump_files_dir);

--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html