[Nagiosplug-devel] check_radius_adv: Patch to support x86_64 in Linux and bug fix in password attribute

Jorge Matias jdsm at ist.utl.pt
Thu Aug 24 19:02:19 CEST 2006


Hi list



  Like my last post with a patch to support x86_64 arch in plugin
 check_radius_adv, here goes a patch to the plugin check_radius_ih-1.1.

  This patches fixes the following:



    - Add support for x84_64 architecture in Linux;

    - Solves problem with Password attribute creation in the RADIUS
 packet.

      Because the password is binary data and sometimes has bytes
 with

      value 0x00 ('\0' or NULL char), which means terminator character
 in 

      strings, the copy of the password hash to the attribute cannot
 be

      copied in string copy functions. Those truncate prematurely
 the data

      being copied.



--- Here if goes ----

diff -Nru check_radius_ih-1.1.orig/check_radius_ih.c check_radius_ih-1.1/
check_radius_ih.c

--- check_radius_ih-1.1.orig/check_radius_ih.c  2006-07-13 09:58:14.00000
0000 +0100

+++ check_radius_ih-1.1/check_radius_ih.c       2006-08-23 17:29:27.00000
0000 +0100

@@ -712,7 +712,9 @@

        switch (data_type)                      /* copy based on
 our datatype           */

        {

                case DATATYPE_STRING:

-                       strncpy((char*)curr->attr_data.string,(char
 *)attr_value,LEGAL_SIZE(curr->attr_data.string)-1);

+                       /* We need to copy the whole source string
 because password hashes can contain NULL */

+                       /* in the middle of it                 
                                             */

+                       memcpy((char*)curr->attr_data.string,(char
 *)attr_value,LEGAL_SIZE(curr->attr_data.string)-1);

                        break;

                case DATATYPE_ADDRESS:

                        curr->attr_data.address = *intval;

diff -Nru check_radius_ih-1.1.orig/md5.h check_radius_ih-1.1/md5.h

--- check_radius_ih-1.1.orig/md5.h      2006-03-17 09:36:33.000000000
 +0000

+++ check_radius_ih-1.1/md5.h   2006-08-23 17:25:18.000000000 +0100

@@ -19,6 +19,8 @@

 /* UINT4 defines a four byte word */

 #if defined(__alpha) && defined(__osf__)

 typedef unsigned int UINT4;

+#elif defined(__x86_64)

+typedef unsigned int UINT4;

 #else

 typedef unsigned long int UINT4;

 #endif

---------------------------------------



  I'm still not sure if this bug fix adds other bug when copying
 other string attributes, but now I don't have "Access DENIED" anymore.





- Jorge Matias (JorgeMatias)



-----------------------

The mailing list archive is found here:

http://www.nagiosexchange.org/nagiosplug-devel.31.0.html

				




More information about the Devel mailing list