|
Hi Alan, I have patches attached from RedHat for freeradius 1.1.3 . Can we have a patched release from freeradius 1.1.7 ?? Thanks Amr Alan DeKok wrote: Edvin Seferovic wrote: |
--- freeradius-1.1.3/src/main/smux.c.1819888 2008-05-15 15:05:49.000000000 +0100
+++ freeradius-1.1.3/src/main/smux.c 2008-05-15 16:17:30.000000000 +0100
@@ -243,7 +243,7 @@
int ret;
u_char buf[BUFSIZ];
u_char *ptr, *h1, *h1e, *h2, *h2e;
- int len, length;
+ size_t len, length;
ptr = buf;
len = BUFSIZ;
@@ -293,8 +293,8 @@
ret = send (rad_snmp.smux_fd, buf, length, 0);
}
-static char *
-smux_var (char *ptr, int len, oid objid[], size_t *objid_len,
+static u_char *
+smux_var (u_char *ptr, size_t len, oid objid[], size_t *objid_len,
size_t *var_val_len,
u_char *var_val_type,
void **var_value)
@@ -591,8 +591,8 @@
}
/* GET message header. */
-static char *
-smux_parse_get_header (char *ptr, size_t *len, long *reqid)
+static u_char *
+smux_parse_get_header (u_char *ptr, size_t *len, long *reqid)
{
u_char type;
long errstat;
@@ -617,7 +617,7 @@
}
static void
-smux_parse_set (char *ptr, size_t len, int action)
+smux_parse_set (u_char *ptr, size_t len, int action)
{
long reqid;
oid my_oid[MAX_OID_LEN];
@@ -646,7 +646,7 @@
}
static void
-smux_parse_get (char *ptr, size_t len, int exact)
+smux_parse_get (u_char *ptr, size_t len, int exact)
{
long reqid;
oid my_oid[MAX_OID_LEN];
@@ -679,7 +679,7 @@
/* Parse SMUX_CLOSE message. */
static void
-smux_parse_close (char *ptr, int len)
+smux_parse_close (u_char *ptr, int len)
{
long reason = 0;
@@ -692,9 +692,9 @@
/* SMUX_RRSP message. */
static void
-smux_parse_rrsp (char *ptr, int len)
+smux_parse_rrsp (u_char *ptr, size_t len)
{
- char val;
+ u_char val;
long errstat;
ptr = asn_parse_int (ptr, &len, &val, &errstat, sizeof (errstat));
@@ -704,7 +704,7 @@
/* Parse SMUX message. */
static int
-smux_parse (char *ptr, int len)
+smux_parse (u_char *ptr, size_t len)
{
/* this buffer we'll use for SOUT message. We could allocate it with malloc and
save only static pointer/lenght, but IMHO static buffer is a faster solusion */
@@ -806,7 +806,7 @@
int
smux_read ()
{
- int len;
+ ssize_t len;
u_char buf[SMUXMAXPKTSIZE];
int ret;
@@ -835,7 +835,7 @@
DEBUG2 ("SMUX read len: %d", len);
/* Parse the message. */
- ret = smux_parse (buf, len);
+ ret = smux_parse (buf, (size_t) len);
if (ret < 0) {
close (rad_snmp.smux_fd);
@@ -854,8 +854,8 @@
{
u_char buf[BUFSIZ];
u_char *ptr;
- int len;
- u_long smux_proto_version;
+ size_t len;
+ long smux_proto_version;
u_char rad_progname[] = "radiusd";
smux_oid_dump ("SMUX open oid", smux_oid, smux_oid_len);
@@ -890,7 +890,7 @@
ptr = asn_build_string (ptr, &len,
(u_char)
(ASN_UNIVERSAL | ASN_PRIMITIVE | ASN_OCTET_STR),
- rad_snmp.smux_password, strlen(rad_snmp.smux_password));
+ (u_char *) rad_snmp.smux_password, strlen(rad_snmp.smux_password));
/* Fill in real SMUX header. We exclude ASN header size (2). */
len = BUFSIZ;
@@ -904,7 +904,8 @@
{
u_char buf[BUFSIZ];
u_char *ptr;
- int len, ret;
+ size_t len;
+ ssize_t ret;
long priority;
long operation;
struct subtree *subtree;
@@ -956,7 +957,7 @@
int
smux_connect ()
{
- int ret;
+ ssize_t ret;
rad_snmp.smux_event=SMUX_NONE;
DEBUG2 ("SMUX connect try %d", rad_snmp.smux_failures + 1);
--- freeradius-1.1.3/src/main/radius_snmp.c.type_long 2008-05-15 23:52:29.000000000 +0100 +++ freeradius-1.1.3/src/main/radius_snmp.c 2008-05-15 23:52:37.000000000 +0100 @@ -296,12 +296,12 @@ case RADIUSACCSERVUPTIME: rad_snmp.acct.uptime = (time(NULL) - rad_snmp.acct.start_time) * 100; - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.uptime; case RADIUSACCSERVRESETTIME: rad_snmp.acct.reset_time = (time(NULL) - rad_snmp.acct.last_reset_time) * 100; - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.reset_time; case RADIUSACCSERVCONFIGRESET: @@ -310,39 +310,39 @@ return (unsigned char *) &result; case RADIUSACCSERVTOTALREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_requests; case RADIUSACCSERVTOTALINVALIDREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_invalid_requests; case RADIUSACCSERVTOTALDUPREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_dup_requests; case RADIUSACCSERVTOTALRESPONSES: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_responses; case RADIUSACCSERVTOTALMALFORMEDREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_malformed_requests; case RADIUSACCSERVTOTALBADAUTHENTICATORS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_bad_authenticators; case RADIUSACCSERVTOTALPACKETSDROPPED: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_packets_dropped; case RADIUSACCSERVTOTALNORECORDS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_no_records; case RADIUSACCSERVTOTALUNKNOWNTYPES: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.acct.total_unknown_types; } @@ -426,12 +426,12 @@ case RADIUSAUTHSERVUPTIME: rad_snmp.auth.uptime = (time(NULL) - rad_snmp.auth.start_time) * 100; - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.uptime; case RADIUSAUTHSERVRESETTIME: rad_snmp.auth.reset_time = (time(NULL) - rad_snmp.auth.last_reset_time) * 100; - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.reset_time; case RADIUSAUTHSERVCONFIGRESET: @@ -440,43 +440,43 @@ return (unsigned char *) &result; case RADIUSAUTHSERVTOTALACCESSREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_requests; case RADIUSAUTHSERVTOTALINVALIDREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_invalid_requests; case RADIUSAUTHSERVTOTALDUPACCESSREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_dup_requests; case RADIUSAUTHSERVTOTALACCESSACCEPTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_access_accepts; case RADIUSAUTHSERVTOTALACCESSREJECTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_access_rejects; case RADIUSAUTHSERVTOTALACCESSCHALLENGES: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_access_challenges; case RADIUSAUTHSERVTOTALMALFORMEDACCESSREQUESTS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_malformed_requests; case RADIUSAUTHSERVTOTALBADAUTHENTICATORS: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_bad_authenticators; case RADIUSAUTHSERVTOTALPACKETSDROPPED: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_packets_dropped; case RADIUSAUTHSERVTOTALUNKNOWNTYPES: - *var_len = sizeof(int32_t); + *var_len = sizeof(long); return (unsigned char *) &rad_snmp.auth.total_unknown_types; }
- List info/subscribe/unsubscribe? See http://www.freeradius.org/list/users.html

