All of lore.kernel.org
 help / color / mirror / Atom feed
* Re: ip_tables.h does not compile when using g++
@ 2002-09-16 14:12 Scott Andrew Baillie
  0 siblings, 0 replies; 3+ messages in thread
From: Scott Andrew Baillie @ 2002-09-16 14:12 UTC (permalink / raw)
  To: netfilter List; +Cc: Harald Welte

Hi Harald,

>
> why does it have to be (char *) ? There are no characters involved,
> hence it (in the spirit of this gcc extension) should be (void *).
>
> The typecast to struct ipt_entry_target is correct, however.
>
> Does it compile with 
>
> return ((struct ipt_entry_target *)((void *)e + e->target_offset));
>
> If yes, I will submit this modified version of  your patch.

No, it does not compile with (void *) at all. Here is the error message
from gcc-3.2 when compiling using g++ :

ip_tables.h: In
   function `ipt_entry_target* ipt_get_target(ipt_entry*)':
ip_tables.h:295: pointer
   of type `void *' used in arithmetic


I agree that the (char *) looks a little confusing but I dont know
what else to use.

Also, just below the function 'ipt_get_target' there is 2 macros
defined that use the same (void *) cast. These casts should also
be patched.

Regards,

Scott.

^ permalink raw reply	[flat|nested] 3+ messages in thread
* ip_tables.h does not compile when using g++
@ 2002-09-14 12:07 Scott Andrew Baillie
  2002-09-15 11:20 ` Harald Welte
  0 siblings, 1 reply; 3+ messages in thread
From: Scott Andrew Baillie @ 2002-09-14 12:07 UTC (permalink / raw)
  To: netfilter List

[-- Attachment #1: Type: text/plain, Size: 897 bytes --]


Hi,

I noticed a discussion on this list in May regarding this problem
but nobody seemed to care.

The file linux-2.4.19/include/linux/netfilter_ipv4/ip_tables.h is
included by user space programs as well as the kernel, hence I think
that it should compile using g++.

This patch makes it compile. Patch is also attached.


diff -ur linux-2.4.19/include/linux/netfilter_ipv4/ip_tables.h
linux-2.4.19-new/include/linux/netfilter_ipv4/ip_tables.h
--- linux-2.4.19/include/linux/netfilter_ipv4/ip_tables.h	Mon Feb 25
19:38:13 2002
+++ linux-2.4.19-new/include/linux/netfilter_ipv4/ip_tables.h	Sat Sep 14
11:11:01 2002
@@ -292,7 +292,7 @@
 static __inline__ struct ipt_entry_target *
 ipt_get_target(struct ipt_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return ((struct ipt_entry_target *)((char *)e + e->target_offset));
 }
 
 /* fn returns 0 to continue iteration */

Regards,

Scott.



[-- Attachment #2: linux-2.4.19-new.patch --]
[-- Type: text/x-patch, Size: 564 bytes --]

diff -ur linux-2.4.19/include/linux/netfilter_ipv4/ip_tables.h linux-2.4.19-new/include/linux/netfilter_ipv4/ip_tables.h
--- linux-2.4.19/include/linux/netfilter_ipv4/ip_tables.h	Mon Feb 25 19:38:13 2002
+++ linux-2.4.19-new/include/linux/netfilter_ipv4/ip_tables.h	Sat Sep 14 11:11:01 2002
@@ -292,7 +292,7 @@
 static __inline__ struct ipt_entry_target *
 ipt_get_target(struct ipt_entry *e)
 {
-	return (void *)e + e->target_offset;
+	return ((struct ipt_entry_target *)((char *)e + e->target_offset));
 }
 
 /* fn returns 0 to continue iteration */

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2002-09-16 14:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2002-09-16 14:12 ip_tables.h does not compile when using g++ Scott Andrew Baillie
  -- strict thread matches above, loose matches on Subject: below --
2002-09-14 12:07 Scott Andrew Baillie
2002-09-15 11:20 ` Harald Welte

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.