Skip to content

Commit 5b2f4d5

Browse files
committed
Merge branch 'BenBE-asprintf-fixes'
2 parents f4d0475 + ecfc251 commit 5b2f4d5

5 files changed

Lines changed: 14 additions & 8 deletions

File tree

Header.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ void Header_writeBackToSettings(const Header* this) {
155155

156156
for (int i = 0; i < len; i++) {
157157
const Meter* meter = (Meter*) Vector_get(vec, i);
158-
char* name;
158+
char* name = NULL;
159159
if (meter->param && As_Meter(meter) == &DynamicMeter_class) {
160160
const char* dynamic = DynamicMeter_lookup(settings->dynamicMeters, meter->param);
161161
xAsprintf(&name, "%s(%s)", As_Meter(meter)->name, dynamic);

XUtils.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,8 @@ size_t strnlen(const char* str, size_t maxLen) {
237237
#endif
238238

239239
int xAsprintf(char** strp, const char* fmt, ...) {
240+
*strp = NULL;
241+
240242
va_list vl;
241243
va_start(vl, fmt);
242244
int r = vasprintf(strp, fmt, vl);

linux/LinuxProcessTable.c

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1471,18 +1471,20 @@ static char* LinuxProcessTable_updateTtyDevice(TtyDriver* ttyDrivers, unsigned l
14711471
if (min > ttyDrivers[i].minorTo) {
14721472
continue;
14731473
}
1474+
14741475
unsigned int idx = min - ttyDrivers[i].minorFrom;
1476+
14751477
struct stat sb;
1476-
char* fullPath;
1478+
14771479
for (;;) {
1478-
xAsprintf(&fullPath, "%s/%d", ttyDrivers[i].path, idx);
1480+
char* fullPath = NULL;
1481+
size_t fullPathLen = xAsprintf(&fullPath, "%s/%d", ttyDrivers[i].path, idx);
14791482
int err = stat(fullPath, &sb);
14801483
if (err == 0 && major(sb.st_rdev) == maj && minor(sb.st_rdev) == min) {
14811484
return fullPath;
14821485
}
1483-
free(fullPath);
14841486

1485-
xAsprintf(&fullPath, "%s%d", ttyDrivers[i].path, idx);
1487+
xSnprintf(fullPath, fullPathLen + 1, "%s%d", ttyDrivers[i].path, idx);
14861488
err = stat(fullPath, &sb);
14871489
if (err == 0 && major(sb.st_rdev) == maj && minor(sb.st_rdev) == min) {
14881490
return fullPath;
@@ -1495,12 +1497,14 @@ static char* LinuxProcessTable_updateTtyDevice(TtyDriver* ttyDrivers, unsigned l
14951497

14961498
idx = min;
14971499
}
1500+
14981501
int err = stat(ttyDrivers[i].path, &sb);
14991502
if (err == 0 && tty_nr == sb.st_rdev) {
15001503
return xStrdup(ttyDrivers[i].path);
15011504
}
15021505
}
1503-
char* out;
1506+
1507+
char* out = NULL;
15041508
xAsprintf(&out, "/dev/%u:%u", maj, min);
15051509
return out;
15061510
}

pcp/PCPDynamicColumn.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static void PCPDynamicColumn_parseMetric(PCPDynamicColumns* columns, PCPDynamicC
5959
/* derived metrics in all dynamic columns for simplicity */
6060
char* error;
6161
if (pmRegisterDerivedMetric(column->metricName, value, &error) < 0) {
62-
char* note;
62+
char* note = NULL;
6363
xAsprintf(&note,
6464
"%s: failed to parse expression in %s at line %u\n%s\n",
6565
pmGetProgname(), path, line, error);

pcp/PCPDynamicMeter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ static void PCPDynamicMeter_parseMetric(PCPDynamicMeters* meters, PCPDynamicMete
7373
/* use derived metrics in dynamic meters for simplicity */
7474
char* error;
7575
if (pmRegisterDerivedMetric(metric->name, value, &error) < 0) {
76-
char* note;
76+
char* note = NULL;
7777
xAsprintf(&note,
7878
"%s: failed to parse expression in %s at line %u\n%s\n%s",
7979
pmGetProgname(), path, line, error, pmGetProgname());

0 commit comments

Comments
 (0)