about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog13
-rw-r--r--inet/arpa/tftp.h24
2 files changed, 28 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 92e6bca36c..51027aea48 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2012-05-08  Mike Frysinger  <vapier@gentoo.org>
+
+	* inet/arpa/tftp.h (struct tftphdr): Rename th_u to th_u1.  Add
+	a struct th_u2 inside the union, and move tu_block/tu_code into
+	a new th_u3 union of tu_block/tu_code inside of that.  Move
+	th_data[1] into the th_u2 as tu_data[0].  Change tu_stuff[1] to
+	tu_stuff[0].  Add a new tu_padding[4] to keep sizeof() the same.
+	(th_block): Change to th_u1.th_u2.th_u3.tu_block.
+	(th_code): Change to th_u1.th_u2.th_u3.tu_code.
+	(th_stuff): Change to th_u1.tu_stuff.
+	(th_data): Define.
+	(th_msg): Change to th_u1.th_u2.tu_data.
+
 2012-05-07  David S. Miller  <davem@davemloft.net>
 
 	* sysdeps/sparc/fpu/libm-test-ulps: Update.
diff --git a/inet/arpa/tftp.h b/inet/arpa/tftp.h
index 21b0559e54..86e0b6e814 100644
--- a/inet/arpa/tftp.h
+++ b/inet/arpa/tftp.h
@@ -49,17 +49,23 @@
 struct	tftphdr {
 	short	th_opcode;			/* packet type */
 	union {
-		unsigned short	tu_block;	/* block # */
-		short	tu_code;		/* error code */
-		char	tu_stuff[1];		/* request packet stuff */
-	} __attribute__ ((__packed__)) th_u;
-	char	th_data[1];			/* data or error string */
+		char	tu_padding[3];		/* sizeof() compat */
+		struct {
+			union {
+				unsigned short	tu_block;	/* block # */
+				short	tu_code;		/* error code */
+			} __attribute__ ((__packed__)) th_u3;
+			char tu_data[0];	/* data or error string */
+		} __attribute__ ((__packed__)) th_u2;
+		char	tu_stuff[0];		/* request packet stuff */
+	} __attribute__ ((__packed__)) th_u1;
 } __attribute__ ((__packed__));
 
-#define	th_block	th_u.tu_block
-#define	th_code		th_u.tu_code
-#define	th_stuff	th_u.tu_stuff
-#define	th_msg		th_data
+#define	th_block	th_u1.th_u2.th_u3.tu_block
+#define	th_code		th_u1.th_u2.th_u3.tu_code
+#define	th_stuff	th_u1.tu_stuff
+#define	th_data		th_u1.th_u2.tu_data
+#define	th_msg		th_u1.th_u2.tu_data
 
 /*
  * Error codes.