openbsd-ports/net/radiusd-cistron/patches/patch-src_acct_c

58 lines
1.7 KiB
Plaintext

$OpenBSD: patch-src_acct_c,v 1.5 2003/06/18 14:19:09 brad Exp $
--- src/acct.c.orig Wed Jun 18 07:42:26 2003
+++ src/acct.c Wed Jun 18 07:42:35 2003
@@ -119,9 +119,10 @@ char *uue(void *in)
*/
static void make_wtmp(struct radutmp *ut, struct utmp *wt, int status)
{
- char buf[32];
+ char buf[48];
NAS *cl;
char *s;
+ int len;
/*
* Fill out the UTMP struct for the radwtmp file.
@@ -143,11 +144,13 @@ static void make_wtmp(struct radutmp *ut
s = cl->shortname;
if (s == NULL || s[0] == 0) s = uue(&(ut->nas_address));
#if UT_LINESIZE > 9
- sprintf(buf, "%03d:%.20s", ut->nas_port, s);
+ sprintf(buf, "%03u:%.20s", ut->nas_port, s);
#else
- sprintf(buf, "%02d%.20s", ut->nas_port, s);
+ sprintf(buf, "%02u%.20s", ut->nas_port, s);
#endif
- strncpy(wt->ut_line, buf, UT_LINESIZE);
+ len = UT_LINESIZE;
+ if (len > sizeof(buf)) len = sizeof(buf);
+ strncpy(wt->ut_line, buf, len);
/*
* We store the dynamic IP address in the hostname field.
@@ -155,7 +158,9 @@ static void make_wtmp(struct radutmp *ut
#ifdef UT_HOSTSIZE
if (ut->framed_address) {
ipaddr2str(buf, ntohl(ut->framed_address));
- strncpy(wt->ut_host, buf, UT_HOSTSIZE);
+ len = UT_HOSTSIZE;
+ if (len > sizeof(buf)) len = sizeof(buf);
+ strncpy(wt->ut_host, buf, len);
}
#endif
#ifdef __svr4__
@@ -931,11 +936,11 @@ static int rad_check_ts(struct radutmp *
s = CHECKRAD2;
execl(CHECKRAD2, "checkrad", nas->nastype, address, port,
- ut->login, session_id, NULL);
+ ut->login, session_id, (void *)NULL);
if (errno == ENOENT) {
s = CHECKRAD1;
execl(CHECKRAD1, "checklogin", nas->nastype, address, port,
- ut->login, session_id, NULL);
+ ut->login, session_id, (void *)NULL);
}
log(L_ERR, "Check-TS: exec %s: %s", s, strerror(errno));