فهرست منبع

[XFRM]: Display the audited SPI value in host byte order.

Currently the IPsec protocol SPI values are written to the audit log in
network byte order which is different from almost all other values which
are recorded in host byte order.  This patch corrects this inconsistency
by writing the SPI values to the audit record in host byte order.

Signed-off-by: Paul Moore <paul.moore@hp.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Paul Moore 18 سال پیش
والد
کامیت
9ab4c954ce
1فایلهای تغییر یافته به همراه6 افزوده شده و 4 حذف شده
  1. 6 4
      net/xfrm/xfrm_state.c

+ 6 - 4
net/xfrm/xfrm_state.c

@@ -2028,6 +2028,7 @@ void
 xfrm_audit_state_add(struct xfrm_state *x, int result, u32 auid, u32 sid)
 xfrm_audit_state_add(struct xfrm_state *x, int result, u32 auid, u32 sid)
 {
 {
 	struct audit_buffer *audit_buf;
 	struct audit_buffer *audit_buf;
+	u32 spi;
 	extern int audit_enabled;
 	extern int audit_enabled;
 
 
 	if (audit_enabled == 0)
 	if (audit_enabled == 0)
@@ -2037,8 +2038,8 @@ xfrm_audit_state_add(struct xfrm_state *x, int result, u32 auid, u32 sid)
 		return;
 		return;
 	audit_log_format(audit_buf, " op=SAD-add res=%u",result);
 	audit_log_format(audit_buf, " op=SAD-add res=%u",result);
 	xfrm_audit_common_stateinfo(x, audit_buf);
 	xfrm_audit_common_stateinfo(x, audit_buf);
-	audit_log_format(audit_buf, " spi=%lu(0x%lx)",
-			 (unsigned long)x->id.spi, (unsigned long)x->id.spi);
+	spi = ntohl(x->id.spi);
+	audit_log_format(audit_buf, " spi=%u(0x%x)", spi, spi);
 	audit_log_end(audit_buf);
 	audit_log_end(audit_buf);
 }
 }
 EXPORT_SYMBOL_GPL(xfrm_audit_state_add);
 EXPORT_SYMBOL_GPL(xfrm_audit_state_add);
@@ -2047,6 +2048,7 @@ void
 xfrm_audit_state_delete(struct xfrm_state *x, int result, u32 auid, u32 sid)
 xfrm_audit_state_delete(struct xfrm_state *x, int result, u32 auid, u32 sid)
 {
 {
 	struct audit_buffer *audit_buf;
 	struct audit_buffer *audit_buf;
+	u32 spi;
 	extern int audit_enabled;
 	extern int audit_enabled;
 
 
 	if (audit_enabled == 0)
 	if (audit_enabled == 0)
@@ -2056,8 +2058,8 @@ xfrm_audit_state_delete(struct xfrm_state *x, int result, u32 auid, u32 sid)
 		return;
 		return;
 	audit_log_format(audit_buf, " op=SAD-delete res=%u",result);
 	audit_log_format(audit_buf, " op=SAD-delete res=%u",result);
 	xfrm_audit_common_stateinfo(x, audit_buf);
 	xfrm_audit_common_stateinfo(x, audit_buf);
-	audit_log_format(audit_buf, " spi=%lu(0x%lx)",
-			 (unsigned long)x->id.spi, (unsigned long)x->id.spi);
+	spi = ntohl(x->id.spi);
+	audit_log_format(audit_buf, " spi=%u(0x%x)", spi, spi);
 	audit_log_end(audit_buf);
 	audit_log_end(audit_buf);
 }
 }
 EXPORT_SYMBOL_GPL(xfrm_audit_state_delete);
 EXPORT_SYMBOL_GPL(xfrm_audit_state_delete);