View | Details | Raw Unified | Return to bug 201657
Collapse All | Expand All

(-)cddl/contrib/opensolaris/lib/libdtrace/common/dt_printf.c (-4 / +12 lines)
Lines 1348-1353 Link Here
1348
	dtrace_aggdesc_t *agg;
1348
	dtrace_aggdesc_t *agg;
1349
	caddr_t lim = (caddr_t)buf + len, limit;
1349
	caddr_t lim = (caddr_t)buf + len, limit;
1350
	char format[64] = "%";
1350
	char format[64] = "%";
1351
	size_t ret;
1351
	int i, aggrec, curagg = -1;
1352
	int i, aggrec, curagg = -1;
1352
	uint64_t normal;
1353
	uint64_t normal;
1353
1354
Lines 1380-1385 Link Here
1380
		int rval;
1381
		int rval;
1381
1382
1382
		char *f = format + 1; /* skip initial '%' */
1383
		char *f = format + 1; /* skip initial '%' */
1384
		size_t fmtsz = sizeof (format) -1;
1383
		const dtrace_recdesc_t *rec;
1385
		const dtrace_recdesc_t *rec;
1384
		dt_pfprint_f *func;
1386
		dt_pfprint_f *func;
1385
		caddr_t addr;
1387
		caddr_t addr;
Lines 1558-1568 Link Here
1558
		if (func == pfprint_stack && (pfd->pfd_flags & DT_PFCONV_LEFT))
1560
		if (func == pfprint_stack && (pfd->pfd_flags & DT_PFCONV_LEFT))
1559
			width = 0;
1561
			width = 0;
1560
1562
1561
		if (width != 0)
1563
		if (width != 0) {
1562
			f += snprintf(f, sizeof (format), "%d", ABS(width));
1564
			ret = snprintf(f, fmtsz, "%d", ABS(width));
1565
			f += ret;
1566
			fmtsz = MAX(0, fmtsz - ret);
1567
		}
1563
1568
1564
		if (prec > 0)
1569
		if (prec > 0) {
1565
			f += snprintf(f, sizeof (format), ".%d", prec);
1570
			ret = snprintf(f, fmtsz, ".%d", prec);
1571
			f += ret;
1572
			fmtsz = MAX(0, fmtsz - ret);
1573
		}
1566
1574
1567
		(void) strcpy(f, pfd->pfd_fmt);
1575
		(void) strcpy(f, pfd->pfd_fmt);
1568
		pfd->pfd_rec = rec;
1576
		pfd->pfd_rec = rec;

Return to bug 201657