]> granicus.if.org Git - pdns/commitdiff
Revert EDNS0Record to a trivial type
authorRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 31 May 2018 14:26:39 +0000 (16:26 +0200)
committerRemi Gacogne <remi.gacogne@powerdns.com>
Thu, 31 May 2018 14:26:39 +0000 (16:26 +0200)
Adding brace initializers makes it non-trivial, which does not seem
like a very good idea for a packed structure.
gcc 8.1.0 complains with:

```
warning: ‘void* memcpy(void*, const void*, size_t)’ copying an object of non-trivial type ‘struct EDNS0Record’ from an array of ‘uint32_t’ {aka ‘unsigned int’} [-Wclass-memaccess]
         memcpy(&stuff, &ttl, sizeof(stuff));
```

pdns/dns.hh

index dff9a80dfd7e9791aee593d1150f2a5964307185..bb990dc6acaa80648364f6d5dc2f94e25fddf21a 100644 (file)
@@ -134,8 +134,8 @@ struct dnsrecordheader
 
 struct EDNS0Record
 {
-  uint8_t extRCode{0}, version{0};
-  uint16_t extFlags{0};
+  uint8_t extRCode, version;
+  uint16_t extFlags;
 } GCCPACKATTRIBUTE;
 
 static_assert(sizeof(EDNS0Record) == 4, "EDNS0Record size must be 4");