Thread: [Dhcp-agent-commits] dhcp-agent dhcp-convert.c,1.15,1.16 dhcp-convert.h,1.3,1.4 dhcp-util.h,1.8,1.9
Status: Alpha
Brought to you by:
actmodern
From: <act...@us...> - 2002-07-02 18:35:48
|
Update of /cvsroot/dhcp-agent/dhcp-agent In directory usw-pr-cvs1:/tmp/cvs-serv2983 Modified Files: dhcp-convert.c dhcp-convert.h dhcp-util.h Log Message: added network_validate_nvt_string_to_string to conversion routines Index: dhcp-convert.c =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-convert.c,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** dhcp-convert.c 17 Jun 2002 13:23:07 -0000 1.15 --- dhcp-convert.c 2 Jul 2002 18:35:44 -0000 1.16 *************** *** 84,88 **** { network_uint16_to_string, string_to_uint16, string_uint16_to_network, xfree }, /* 13 */ /* boot file size option */ ! { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 14 */ /* merit dump file */ { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, --- 84,88 ---- { network_uint16_to_string, string_to_uint16, string_uint16_to_network, xfree }, /* 13 */ /* boot file size option */ ! { validate_network_nvt_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 14 */ /* merit dump file */ { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, *************** *** 90,94 **** { network_addr_to_string, string_to_addr, string_addr_to_network, xfree }, /* 16 */ /* swap server */ ! { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 17 */ /* root path */ { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, --- 90,94 ---- { network_addr_to_string, string_to_addr, string_addr_to_network, xfree }, /* 16 */ /* swap server */ ! { validate_network_nvt_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 17 */ /* root path */ { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, *************** *** 136,140 **** { network_byte_to_string_byte, string_byte_to_byte, string_byte_to_network, xfree }, /* 39 */ /* TCP Keepalive Garbage Option. */ ! { validate_network_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 40 */ /* Network Information Service Domain */ { network_addr_list_to_string, string_to_addr_list, --- 136,140 ---- { network_byte_to_string_byte, string_byte_to_byte, string_byte_to_network, xfree }, /* 39 */ /* TCP Keepalive Garbage Option. */ ! { validate_network_nvt_string_to_string, strdup_wrap, strdup_wrap_net, xfree }, /* 40 */ /* Network Information Service Domain */ { network_addr_list_to_string, string_to_addr_list, *************** *** 165,169 **** string_addr_to_network, xfree }, /* 54 */ /* Server Identifier. */ { NULL, NULL, NULL, NULL }, /* 55 */ /* parameter request list. */ ! { NULL, NULL, NULL, NULL }, /* 56 */ /* message. we handle this higher. */ { network_uint16_list_to_string, string_to_uint16_list, string_uint16_list_to_network, purge_list_internal }, /* 57 */ /* Maximum DHCP message size. */ --- 165,170 ---- string_addr_to_network, xfree }, /* 54 */ /* Server Identifier. */ { NULL, NULL, NULL, NULL }, /* 55 */ /* parameter request list. */ ! { validate_network_nvt_string_to_string, strdup_wrap, ! strdup_wrap_net, xfree }, /* 56 */ /* Message */ { network_uint16_list_to_string, string_to_uint16_list, string_uint16_list_to_network, purge_list_internal }, /* 57 */ /* Maximum DHCP message size. */ *************** *** 380,389 **** */ ! /* validate string only: fixme: add rfc character set check. */ char *validate_network_string_to_string(const unsigned char *data, int len) { char *new_string; ! if(!is_string(data, len)) { /* fix if needed. */ new_string = xmalloc(len + 1); memcpy(new_string, data, len); --- 381,390 ---- */ ! /* validate string only */ char *validate_network_string_to_string(const unsigned char *data, int len) { char *new_string; ! if(!is_string(data, len)) { /* add null if needed. */ new_string = xmalloc(len + 1); memcpy(new_string, data, len); *************** *** 394,397 **** --- 395,407 ---- /* otherwise strdup a copy. */ return strdup(data); + } + + /* validate string and make sures it contains nvt ascii characters */ + char *validate_network_nvt_string_to_string(const unsigned char *data, int len) + { + if(is_seven_bit_clean(data, len)) { + return validate_network_string_to_string(data, len); + } else + return NULL; } Index: dhcp-convert.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-convert.h,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** dhcp-convert.h 30 Jun 2002 21:22:15 -0000 1.3 --- dhcp-convert.h 2 Jul 2002 18:35:44 -0000 1.4 *************** *** 88,91 **** --- 88,92 ---- /* network to string */ + extern char *validate_network_nvt_string_to_string(const unsigned char *data, int len); extern char *validate_network_string_to_string(const unsigned char *data, int len); extern char *validate_string_to_string(const unsigned char *data, int len); Index: dhcp-util.h =================================================================== RCS file: /cvsroot/dhcp-agent/dhcp-agent/dhcp-util.h,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** dhcp-util.h 30 Jun 2002 08:23:45 -0000 1.8 --- dhcp-util.h 2 Jul 2002 18:35:44 -0000 1.9 *************** *** 73,76 **** --- 73,77 ---- extern int resolv(char *address, uint32_t *addr); extern int port_for_service(const char *serv, const char *proto); + extern int is_seven_bit_clean(const char *data, int len); #endif /* DHCP_UTIL_H */ |