summaryrefslogtreecommitdiffstats
path: root/source/nmbd
diff options
context:
space:
mode:
authorGerald Carter <jerry@samba.org>2005-03-09 22:20:40 +0000
committerGerald Carter <jerry@samba.org>2005-03-09 22:20:40 +0000
commitd77672f8dcf15eb9ec8a14588d8326b905baac64 (patch)
tree158c220e49ed77b37817c259fec1c35e0cde4289 /source/nmbd
parent4c5f9203b1450c3f2e19d7d14565d73f6d46fcdf (diff)
downloadsamba-d77672f8dcf15eb9ec8a14588d8326b905baac64.tar.gz
samba-d77672f8dcf15eb9ec8a14588d8326b905baac64.tar.xz
samba-d77672f8dcf15eb9ec8a14588d8326b905baac64.zip
r5717: BUG 2215: horrible code in nmbd_winsproxy.c; gcc folks at redhat claim its in violation of the C spec. It's so horrible I believe them
Diffstat (limited to 'source/nmbd')
-rw-r--r--source/nmbd/nmbd_winsproxy.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/source/nmbd/nmbd_winsproxy.c b/source/nmbd/nmbd_winsproxy.c
index b01ffcffc16..75319724616 100644
--- a/source/nmbd/nmbd_winsproxy.c
+++ b/source/nmbd/nmbd_winsproxy.c
@@ -190,12 +190,15 @@ void make_wins_proxy_name_query_request( struct subnet_record *subrec,
struct packet_struct *incoming_packet,
struct nmb_name *question_name)
{
- long *ud[(sizeof(struct userdata_struct) + sizeof(struct subrec *) +
- sizeof(struct packet_struct *))/sizeof(long *) + 1];
- struct userdata_struct *userdata = (struct userdata_struct *)ud;
+ union {
+ struct userdata_struct ud;
+ char c[sizeof(struct userdata_struct) + sizeof(struct subrec *) +
+ sizeof(struct packet_struct *)+sizeof(long*)];
+ } ud;
+ struct userdata_struct *userdata = &ud.ud;
unstring qname;
- memset(ud, '\0', sizeof(ud));
+ memset(&ud, '\0', sizeof(ud));
userdata->copy_fn = wins_proxy_userdata_copy_fn;
userdata->free_fn = wins_proxy_userdata_free_fn;