--- extensions/ulogd_BASE.c-save 2007-08-06 11:23:53.000000000 +0200 +++ extensions/ulogd_BASE.c 2007-08-06 11:28:47.000000000 +0200 @@ -63,7 +63,7 @@ static ulog_iret_t *_interp_raw(ulog_int { unsigned char *p; int i; - char *buf, *oldbuf = NULL; + char *buf = NULL; ulog_iret_t *ret = ip->result; if (pkt->mac_len) { @@ -75,9 +75,8 @@ static ulog_iret_t *_interp_raw(ulog_int *buf = '\0'; p = pkt->mac; - oldbuf = buf; for (i = 0; i < pkt->mac_len; i++, p++) - sprintf(buf, "%s%02x%c", oldbuf, *p, i==pkt->mac_len-1 ? ' ':':'); + sprintf(buf + (i*3), "%02x%c", *p, i==pkt->mac_len-1 ? ' ':':'); ret[0].value.ptr = buf; ret[0].flags |= ULOGD_RETF_VALID; }