aboutsummaryrefslogtreecommitdiff
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.