summaryrefslogtreecommitdiff
path: root/packages/avahi
diff options
context:
space:
mode:
authorPhilipp Zabel <philipp.zabel@gmail.com>2005-09-25 15:59:31 +0000
committerOpenEmbedded Project <openembedded-devel@lists.openembedded.org>2005-09-25 15:59:31 +0000
commit664d7739d8f7cb1692724ddd7569020d19da3e3a (patch)
tree1cf60c6ff2714c990e31e19c30872fa21cb369d5 /packages/avahi
parentc5ad04d9323ce0152ec164ec4f38af0004ed1b0d (diff)
avahi: memory alignment fix
Diffstat (limited to 'packages/avahi')
-rw-r--r--packages/avahi/avahi-0.5/.mtn2git_empty0
-rw-r--r--packages/avahi/avahi-0.5/alignment-fix.patch96
-rw-r--r--packages/avahi/avahi_0.5.bb5
3 files changed, 99 insertions, 2 deletions
diff --git a/packages/avahi/avahi-0.5/.mtn2git_empty b/packages/avahi/avahi-0.5/.mtn2git_empty
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/packages/avahi/avahi-0.5/.mtn2git_empty
diff --git a/packages/avahi/avahi-0.5/alignment-fix.patch b/packages/avahi/avahi-0.5/alignment-fix.patch
new file mode 100644
index 0000000000..fc23f23756
--- /dev/null
+++ b/packages/avahi/avahi-0.5/alignment-fix.patch
@@ -0,0 +1,96 @@
+--- avahi-0.5/avahi-core/dns.c.orig 2005-09-23 16:35:02 +0200
++++ avahi-0.5/avahi-core/dns.c 2005-09-23 16:35:07 +0200
+@@ -177,11 +177,13 @@
+ assert(idx < p->size);
+
+ if (idx < 0x4000) {
+- uint16_t *t;
+- if (!(t = (uint16_t*) avahi_dns_packet_extend(p, sizeof(uint16_t))))
++ uint8_t *t;
++
++ if (!(t = (uint8_t*) avahi_dns_packet_extend(p, sizeof(uint16_t))))
+ return NULL;
+
+- *t = htons((0xC000 | idx));
++ t[0] = (uint8_t) ((0xC000 | idx) >> 8);
++ t[1] = (uint8_t) idx;
+ return saved_ptr;
+ }
+ }
+@@ -223,7 +225,8 @@
+ if (!(d = avahi_dns_packet_extend(p, sizeof(uint16_t))))
+ return NULL;
+
+- *((uint16_t*) d) = htons(v);
++ d[0] = (uint8_t) (v >> 8);
++ d[1] = (uint8_t) v;
+ return d;
+ }
+
+@@ -234,7 +237,10 @@
+ if (!(d = avahi_dns_packet_extend(p, sizeof(uint32_t))))
+ return NULL;
+
+- *((uint32_t*) d) = htonl(v);
++ d[0] = (uint8_t) (v >> 24);
++ d[1] = (uint8_t) (v >> 16);
++ d[2] = (uint8_t) (v >> 8);
++ d[3] = (uint8_t) v;
+
+ return d;
+ }
+@@ -385,26 +391,42 @@
+ }
+
+ int avahi_dns_packet_consume_uint16(AvahiDnsPacket *p, uint16_t *ret_v) {
++ uint8_t *d;
++ uint16_t tmp_v;
++
+ assert(p);
+ assert(ret_v);
+
+ if (p->rindex + sizeof(uint16_t) > p->size)
+ return -1;
+
+- *ret_v = ntohs(*((uint16_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex)));
++ d = (uint8_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex);
++ tmp_v = (d[0] << 8) | d[1];
++ d = (uint8_t*) ret_v;
++ d[0] = ((uint8_t*)(&tmp_v))[0];
++ d[1] = ((uint8_t*)(&tmp_v))[1];
+ p->rindex += sizeof(uint16_t);
+
+ return 0;
+ }
+
+ int avahi_dns_packet_consume_uint32(AvahiDnsPacket *p, uint32_t *ret_v) {
++ uint8_t* d;
++ uint32_t tmp_v;
++
+ assert(p);
+ assert(ret_v);
+
+ if (p->rindex + sizeof(uint32_t) > p->size)
+ return -1;
+
+- *ret_v = ntohl(*((uint32_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex)));
++ d = (uint8_t*) (AVAHI_DNS_PACKET_DATA(p) + p->rindex);
++ tmp_v = (d[0] << 24) | (d[1] << 16) | (d[2] << 8) | d[3];
++ d = (uint8_t*) ret_v;
++ d[0] = ((uint8_t*)(&tmp_v))[0];
++ d[1] = ((uint8_t*)(&tmp_v))[1];
++ d[2] = ((uint8_t*)(&tmp_v))[2];
++ d[3] = ((uint8_t*)(&tmp_v))[3];
+ p->rindex += sizeof(uint32_t);
+
+ return 0;
+@@ -733,7 +755,8 @@
+
+ /* avahi_log_debug("appended %u", size); */
+
+- * (uint16_t*) l = htons((uint16_t) size);
++ l[0] = (uint8_t) ((uint16_t) size >> 8);
++ l[1] = (uint8_t) ((uint16_t) size);
+
+ return t;
+
diff --git a/packages/avahi/avahi_0.5.bb b/packages/avahi/avahi_0.5.bb
index dc1ff36f83..55a26ef16a 100644
--- a/packages/avahi/avahi_0.5.bb
+++ b/packages/avahi/avahi_0.5.bb
@@ -5,9 +5,10 @@ DEPENDS = "expat libdaemon dbus-0.50"
RRECOMMENDS = "libnss-mdns"
SECTION = "net"
PRIORITY = "optional"
-PR = "r0"
+PR = "r1"
-SRC_URI = "http://www.freedesktop.org/~lennart/avahi-${PV}.tar.gz"
+SRC_URI = "http://www.freedesktop.org/~lennart/avahi-${PV}.tar.gz \
+ file://alignment-fix.patch;patch=1"
PACKAGES = "avahi-daemon libavahi-common libavahi-core libavahi-client avahi-dnsconfd libavahi-glib avahi-dev avahi-doc"