Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1158441 > unrolled thread
| Started by | Sergei Zviagintsev <sergei@s15v.net> |
|---|---|
| First post | 2015-06-04 12:40 +0200 |
| Last post | 2015-06-04 14:20 +0200 |
| Articles | 4 — 3 participants |
Back to article view | Back to linux.kernel
[PATCH] kdbus: fix type conversion in item macroses Sergei Zviagintsev <sergei@s15v.net> - 2015-06-04 12:40 +0200
Re: [PATCH] kdbus: fix type conversion in item macroses David Herrmann <dh.herrmann@gmail.com> - 2015-06-04 13:30 +0200
Re: [PATCH] kdbus: fix type conversion in item macroses Frans Klaver <fransklaver@gmail.com> - 2015-06-04 13:50 +0200
Re: [PATCH] kdbus: fix type conversion in item macroses Sergei Zviagintsev <sergei@s15v.net> - 2015-06-04 14:20 +0200
| From | Sergei Zviagintsev <sergei@s15v.net> |
|---|---|
| Date | 2015-06-04 12:40 +0200 |
| Subject | [PATCH] kdbus: fix type conversion in item macroses |
| Message-ID | <pxAJ4-6By-3@gated-at.bofh.it> |
KDBUS_ITEM_NEXT and KDBUS_ITEMS_END macroses do not enclose _i argument
into parentheses when applying the cast operator. If complex expression
passed, e.g.
KDBUS_ITEM_NEXT(condition ? a : b)
then type conversion to (u8 *) will go wrong due to precedence rules.
Use parentheses properly. Update documentation.
Signed-off-by: Sergei Zviagintsev <sergei@s15v.net>
---
Documentation/kdbus/kdbus.item.xml | 2 +-
ipc/kdbus/item.h | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Documentation/kdbus/kdbus.item.xml b/Documentation/kdbus/kdbus.item.xml
index 09f8b903116f..b0eeeef995af 100644
--- a/Documentation/kdbus/kdbus.item.xml
+++ b/Documentation/kdbus/kdbus.item.xml
@@ -69,7 +69,7 @@
#define KDBUS_ALIGN8(val) (((val) + 7) & ~7)
#define KDBUS_ITEM_NEXT(item) \
- (typeof(item))(((uint8_t *)item) + KDBUS_ALIGN8((item)->size))
+ (typeof(item))((uint8_t *)(item) + KDBUS_ALIGN8((item)->size))
#define KDBUS_ITEM_FOREACH(item, head, first) \
for (item = (head)->first; \
diff --git a/ipc/kdbus/item.h b/ipc/kdbus/item.h
index eeefd8beac3b..03612368b3bb 100644
--- a/ipc/kdbus/item.h
+++ b/ipc/kdbus/item.h
@@ -21,7 +21,7 @@
#include "util.h"
/* generic access and iterators over a stream of items */
-#define KDBUS_ITEM_NEXT(_i) (typeof(_i))(((u8 *)_i) + KDBUS_ALIGN8((_i)->size))
+#define KDBUS_ITEM_NEXT(_i) (typeof(_i))((u8 *)(_i) + KDBUS_ALIGN8((_i)->size))
#define KDBUS_ITEMS_SIZE(_h, _is) ((_h)->size - offsetof(typeof(*_h), _is))
#define KDBUS_ITEM_HEADER_SIZE offsetof(struct kdbus_item, data)
#define KDBUS_ITEM_SIZE(_s) KDBUS_ALIGN8(KDBUS_ITEM_HEADER_SIZE + (_s))
@@ -40,7 +40,7 @@
(u8 *)(_i) >= (u8 *)(_is))
#define KDBUS_ITEMS_END(_i, _is, _s) \
- ((u8 *)_i == ((u8 *)(_is) + KDBUS_ALIGN8(_s)))
+ ((u8 *)(_i) == ((u8 *)(_is) + KDBUS_ALIGN8(_s)))
/**
* struct kdbus_item_header - Describes the fix part of an item
--
1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | David Herrmann <dh.herrmann@gmail.com> |
|---|---|
| Date | 2015-06-04 13:30 +0200 |
| Message-ID | <pxBvr-7Nj-1@gated-at.bofh.it> |
| In reply to | #1158441 |
Hi On Thu, Jun 4, 2015 at 12:39 PM, Sergei Zviagintsev <sergei@s15v.net> wrote: > KDBUS_ITEM_NEXT and KDBUS_ITEMS_END macroses do not enclose _i argument > into parentheses when applying the cast operator. If complex expression > passed, e.g. > > KDBUS_ITEM_NEXT(condition ? a : b) > > then type conversion to (u8 *) will go wrong due to precedence rules. > > Use parentheses properly. Update documentation. > > Signed-off-by: Sergei Zviagintsev <sergei@s15v.net> > --- > Documentation/kdbus/kdbus.item.xml | 2 +- > ipc/kdbus/item.h | 4 ++-- > 2 files changed, 3 insertions(+), 3 deletions(-) Reviewed-by: David Herrmann <dh.herrmann@gmail.com> Thanks David > diff --git a/Documentation/kdbus/kdbus.item.xml b/Documentation/kdbus/kdbus.item.xml > index 09f8b903116f..b0eeeef995af 100644 > --- a/Documentation/kdbus/kdbus.item.xml > +++ b/Documentation/kdbus/kdbus.item.xml > @@ -69,7 +69,7 @@ > #define KDBUS_ALIGN8(val) (((val) + 7) & ~7) > > #define KDBUS_ITEM_NEXT(item) \ > - (typeof(item))(((uint8_t *)item) + KDBUS_ALIGN8((item)->size)) > + (typeof(item))((uint8_t *)(item) + KDBUS_ALIGN8((item)->size)) > > #define KDBUS_ITEM_FOREACH(item, head, first) \ > for (item = (head)->first; \ > diff --git a/ipc/kdbus/item.h b/ipc/kdbus/item.h > index eeefd8beac3b..03612368b3bb 100644 > --- a/ipc/kdbus/item.h > +++ b/ipc/kdbus/item.h > @@ -21,7 +21,7 @@ > #include "util.h" > > /* generic access and iterators over a stream of items */ > -#define KDBUS_ITEM_NEXT(_i) (typeof(_i))(((u8 *)_i) + KDBUS_ALIGN8((_i)->size)) > +#define KDBUS_ITEM_NEXT(_i) (typeof(_i))((u8 *)(_i) + KDBUS_ALIGN8((_i)->size)) > #define KDBUS_ITEMS_SIZE(_h, _is) ((_h)->size - offsetof(typeof(*_h), _is)) > #define KDBUS_ITEM_HEADER_SIZE offsetof(struct kdbus_item, data) > #define KDBUS_ITEM_SIZE(_s) KDBUS_ALIGN8(KDBUS_ITEM_HEADER_SIZE + (_s)) > @@ -40,7 +40,7 @@ > (u8 *)(_i) >= (u8 *)(_is)) > > #define KDBUS_ITEMS_END(_i, _is, _s) \ > - ((u8 *)_i == ((u8 *)(_is) + KDBUS_ALIGN8(_s))) > + ((u8 *)(_i) == ((u8 *)(_is) + KDBUS_ALIGN8(_s))) > > /** > * struct kdbus_item_header - Describes the fix part of an item > -- > 1.8.3.1 > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Frans Klaver <fransklaver@gmail.com> |
|---|---|
| Date | 2015-06-04 13:50 +0200 |
| Message-ID | <pxBON-8al-1@gated-at.bofh.it> |
| In reply to | #1158441 |
On Thu, Jun 4, 2015 at 12:39 PM, Sergei Zviagintsev <sergei@s15v.net> wrote: > macroses Sounds like a kind of rash or so ;-). 'macros' would probably sound better. Cheers, Frans -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Sergei Zviagintsev <sergei@s15v.net> |
|---|---|
| Date | 2015-06-04 14:20 +0200 |
| Message-ID | <pxChP-xc-1@gated-at.bofh.it> |
| In reply to | #1158488 |
Hi, On Thu, Jun 04, 2015 at 01:49:15PM +0200, Frans Klaver wrote: > On Thu, Jun 4, 2015 at 12:39 PM, Sergei Zviagintsev <sergei@s15v.net> wrote: > > macroses > > Sounds like a kind of rash or so ;-). 'macros' would probably sound better. Oh, now I see the difference :) Thank you for correction, I'll resend with proper subject. > > Cheers, > Frans -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web