diff options
Diffstat (limited to 'contrib/openbsm/libbsm/bsm_io.c')
-rw-r--r-- | contrib/openbsm/libbsm/bsm_io.c | 98 |
1 files changed, 65 insertions, 33 deletions
diff --git a/contrib/openbsm/libbsm/bsm_io.c b/contrib/openbsm/libbsm/bsm_io.c index 364532e..5f678fb 100644 --- a/contrib/openbsm/libbsm/bsm_io.c +++ b/contrib/openbsm/libbsm/bsm_io.c @@ -31,7 +31,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#34 $ + * $P4: //depot/projects/trustedbsd/openbsm/libbsm/bsm_io.c#37 $ */ #include <sys/types.h> @@ -893,6 +893,7 @@ fetch_arb_tok(tokenstr_t *tok, char *buf, int len) */ switch(tok->tt.arb.bu) { case AUR_BYTE: + /* case AUR_CHAR: */ datasize = AUR_BYTE_SIZE; break; @@ -900,8 +901,13 @@ fetch_arb_tok(tokenstr_t *tok, char *buf, int len) datasize = AUR_SHORT_SIZE; break; - case AUR_LONG: - datasize = AUR_LONG_SIZE; + case AUR_INT32: + /* case AUR_INT: */ + datasize = AUR_INT32_SIZE; + break; + + case AUR_INT64: + datasize = AUR_INT64_SIZE; break; default: @@ -962,6 +968,7 @@ print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); switch(tok->tt.arb.bu) { case AUR_BYTE: + /* case AUR_CHAR: */ str = "byte"; size = AUR_BYTE_SIZE; print_string(fp, str, strlen(str)); @@ -979,23 +986,36 @@ print_arb_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); print_1_byte(fp, tok->tt.arb.uc, "%u"); print_delim(fp, del); - for (i = 0; i<tok->tt.arb.uc; i++) + for (i = 0; i < tok->tt.arb.uc; i++) fprintf(fp, format, *((u_int16_t *)(tok->tt.arb.data + (size * i)))); break; - case AUR_LONG: + case AUR_INT32: + /* case AUR_INT: */ str = "int"; - size = AUR_LONG_SIZE; + size = AUR_INT32_SIZE; print_string(fp, str, strlen(str)); print_delim(fp, del); print_1_byte(fp, tok->tt.arb.uc, "%u"); print_delim(fp, del); - for (i = 0; i<tok->tt.arb.uc; i++) + for (i = 0; i < tok->tt.arb.uc; i++) fprintf(fp, format, *((u_int32_t *)(tok->tt.arb.data + (size * i)))); break; + case AUR_INT64: + str = "int64"; + size = AUR_INT64_SIZE; + print_string(fp, str, strlen(str)); + print_delim(fp, del); + print_1_byte(fp, tok->tt.arb.uc, "%u"); + print_delim(fp, del); + for (i = 0; i < tok->tt.arb.uc; i++) + fprintf(fp, format, *((u_int64_t *)(tok->tt.arb.data + + (size * i)))); + break; + default: return; } @@ -1336,7 +1356,8 @@ fetch_inaddr_tok(tokenstr_t *tok, char *buf, int len) { int err = 0; - READ_TOKEN_U_INT32(buf, len, tok->tt.inaddr.addr, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.inaddr.addr, sizeof(uint32_t), + tok->len, err); if (err) return (-1); @@ -1410,15 +1431,18 @@ fetch_ip_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.ip.len, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.ip.len, sizeof(uint16_t), + tok->len, err); if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.ip.id, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.ip.id, sizeof(uint16_t), + tok->len, err); if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.ip.offset, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.ip.offset, sizeof(uint16_t), + tok->len, err); if (err) return (-1); @@ -1430,7 +1454,8 @@ fetch_ip_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.ip.chksm, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.ip.chksm, sizeof(uint16_t), + tok->len, err); if (err) return (-1); @@ -1458,17 +1483,17 @@ print_ip_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); print_mem(fp, (u_char *)(&tok->tt.ip.tos), sizeof(u_char)); print_delim(fp, del); - print_2_bytes(fp, tok->tt.ip.len, "%u"); + print_2_bytes(fp, ntohs(tok->tt.ip.len), "%u"); print_delim(fp, del); - print_2_bytes(fp, tok->tt.ip.id, "%u"); + print_2_bytes(fp, ntohs(tok->tt.ip.id), "%u"); print_delim(fp, del); - print_2_bytes(fp, tok->tt.ip.offset, "%u"); + print_2_bytes(fp, ntohs(tok->tt.ip.offset), "%u"); print_delim(fp, del); print_mem(fp, (u_char *)(&tok->tt.ip.ttl), sizeof(u_char)); print_delim(fp, del); print_mem(fp, (u_char *)(&tok->tt.ip.prot), sizeof(u_char)); print_delim(fp, del); - print_2_bytes(fp, tok->tt.ip.chksm, "%u"); + print_2_bytes(fp, ntohs(tok->tt.ip.chksm), "%u"); print_delim(fp, del); print_ip_address(fp, tok->tt.ip.src); print_delim(fp, del); @@ -1582,7 +1607,8 @@ fetch_iport_tok(tokenstr_t *tok, char *buf, int len) { int err = 0; - READ_TOKEN_U_INT16(buf, len, tok->tt.iport.port, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.iport.port, sizeof(uint16_t), + tok->len, err); if (err) return (-1); @@ -1596,7 +1622,7 @@ print_iport_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_tok_type(fp, tok->id, "ip port", raw); print_delim(fp, del); - print_2_bytes(fp, tok->tt.iport.port, "%#x"); + print_2_bytes(fp, ntohs(tok->tt.iport.port), "%#x"); } /* @@ -1712,7 +1738,8 @@ fetch_process32_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.proc32.tid.addr, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.proc32.tid.addr, + sizeof(tok->tt.proc32.tid.addr), tok->len, err); if (err) return (-1); @@ -1931,7 +1958,8 @@ fetch_sock_inet32_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.sockinet32.port, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.sockinet32.port, + sizeof(uint16_t), tok->len, err); if (err) return (-1); @@ -1952,7 +1980,7 @@ print_sock_inet32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); print_2_bytes(fp, tok->tt.sockinet32.family, "%u"); print_delim(fp, del); - print_2_bytes(fp, tok->tt.sockinet32.port, "%u"); + print_2_bytes(fp, ntohs(tok->tt.sockinet32.port), "%u"); print_delim(fp, del); print_ip_address(fp, tok->tt.sockinet32.addr); } @@ -1961,7 +1989,8 @@ print_sock_inet32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, * socket family 2 bytes * path 104 bytes */ -static int fetch_sock_unix_tok(tokenstr_t *tok, char *buf, int len) +static int +fetch_sock_unix_tok(tokenstr_t *tok, char *buf, int len) { int err = 0; @@ -1997,7 +2026,8 @@ print_sock_unix_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, * remote port 2 bytes * remote address 4 bytes */ -static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len) +static int +fetch_socket_tok(tokenstr_t *tok, char *buf, int len) { int err = 0; @@ -2005,7 +2035,8 @@ static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.socket.l_port, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.socket.l_port, sizeof(uint16_t), + tok->len, err); if (err) return (-1); @@ -2014,7 +2045,8 @@ static int fetch_socket_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.socket.r_port, tok->len, err); + READ_TOKEN_BYTES(buf, len, &tok->tt.socket.r_port, sizeof(uint16_t), + tok->len, err); if (err) return (-1); @@ -2035,11 +2067,11 @@ print_socket_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); print_2_bytes(fp, tok->tt.socket.type, "%u"); print_delim(fp, del); - print_2_bytes(fp, tok->tt.socket.l_port, "%u"); + print_2_bytes(fp, ntohs(tok->tt.socket.l_port), "%u"); print_delim(fp, del); print_ip_address(fp, tok->tt.socket.l_addr); print_delim(fp, del); - print_2_bytes(fp, tok->tt.socket.r_port, "%u"); + print_2_bytes(fp, ntohs(tok->tt.socket.r_port), "%u"); print_delim(fp, del); print_ip_address(fp, tok->tt.socket.r_addr); } @@ -2359,8 +2391,8 @@ fetch_socketex32_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT16(buf, len, tok->tt.socket_ex32.l_port, tok->len, - err); + READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.l_port, + sizeof(uint16_t), tok->len, err); if (err) return (-1); @@ -2374,8 +2406,8 @@ fetch_socketex32_tok(tokenstr_t *tok, char *buf, int len) if (err) return (-1); - READ_TOKEN_U_INT32(buf, len, tok->tt.socket_ex32.r_port, tok->len, - err); + READ_TOKEN_BYTES(buf, len, &tok->tt.socket_ex32.r_port, + sizeof(uint16_t), tok->len, err); if (err) return (-1); @@ -2401,11 +2433,11 @@ print_socketex32_tok(FILE *fp, tokenstr_t *tok, char *del, char raw, print_delim(fp, del); print_2_bytes(fp, tok->tt.socket_ex32.type, "%#x"); print_delim(fp, del); - print_2_bytes(fp, tok->tt.socket_ex32.l_port, "%#x"); + print_2_bytes(fp, ntohs(tok->tt.socket_ex32.l_port), "%#x"); print_delim(fp, del); print_ip_address(fp, tok->tt.socket_ex32.l_addr); print_delim(fp, del); - print_4_bytes(fp, tok->tt.socket_ex32.r_port, "%#x"); + print_4_bytes(fp, ntohs(tok->tt.socket_ex32.r_port), "%#x"); print_delim(fp, del); print_ip_address(fp, tok->tt.socket_ex32.r_addr); } |