All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] gobex: Fix a compilation error for the compatibility with LLVM
@ 2016-11-19  1:45 mcchou
  0 siblings, 0 replies; only message in thread
From: mcchou @ 2016-11-19  1:45 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: luiz.von.dentz, josephsih, Miao-chen Chou

From: Miao-chen Chou <mcchou@chromium.org>

Last argument to a function using va_args should not undergo argument promotion
as the behavior is undefined. Detailed explanation here:
https://www.securecoding.cert.org/confluence/display/cplusplus/EXP58-CPP.+
Pass+an+object+of+the+correct+type+to+va_start
---
 gobex/gobex-packet.c   |  4 ++--
 gobex/gobex-packet.h   |  4 ++--
 gobex/gobex-transfer.c |  8 ++++----
 gobex/gobex.c          |  4 ++--
 gobex/gobex.h          | 12 ++++++------
 5 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/gobex/gobex-packet.c b/gobex/gobex-packet.c
index db56ed0..cd5c131 100644
--- a/gobex/gobex-packet.c
+++ b/gobex/gobex-packet.c
@@ -228,7 +228,7 @@ gboolean g_obex_packet_set_data(GObexPacket *pkt, const void *data, gsize len,
 }

 GObexPacket *g_obex_packet_new_valist(guint8 opcode, gboolean final,
-					guint8 first_hdr_id, va_list args)
+					guint first_hdr_id, va_list args)
 {
 	GObexPacket *pkt;

@@ -246,7 +246,7 @@ GObexPacket *g_obex_packet_new_valist(guint8 opcode, gboolean final,
 }

 GObexPacket *g_obex_packet_new(guint8 opcode, gboolean final,
-						guint8 first_hdr_id, ...)
+						guint first_hdr_id, ...)
 {
 	GObexPacket *pkt;
 	va_list args;
diff --git a/gobex/gobex-packet.h b/gobex/gobex-packet.h
index d1007ea..1d94ccf 100644
--- a/gobex/gobex-packet.h
+++ b/gobex/gobex-packet.h
@@ -98,9 +98,9 @@ gboolean g_obex_packet_set_data(GObexPacket *pkt, const void *data, gsize len,
 						GObexDataPolicy data_policy);
 const void *g_obex_packet_get_data(GObexPacket *pkt, gsize *len);
 GObexPacket *g_obex_packet_new(guint8 opcode, gboolean final,
-						guint8 first_hdr_id, ...);
+						guint first_hdr_id, ...);
 GObexPacket *g_obex_packet_new_valist(guint8 opcode, gboolean final,
-					guint8 first_hdr_id, va_list args);
+					guint first_hdr_id, va_list args);
 void g_obex_packet_free(GObexPacket *pkt);

 GObexPacket *g_obex_packet_decode(const void *data, gsize len,
diff --git a/gobex/gobex-transfer.c b/gobex/gobex-transfer.c
index a5115bf..bc99306 100644
--- a/gobex/gobex-transfer.c
+++ b/gobex/gobex-transfer.c
@@ -296,7 +296,7 @@ guint g_obex_put_req_pkt(GObex *obex, GObexPacket *req,

 guint g_obex_put_req(GObex *obex, GObexDataProducer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...)
+			GError **err, guint first_hdr_id, ...)
 {
 	GObexPacket *req;
 	va_list args;
@@ -414,7 +414,7 @@ done:
 guint g_obex_put_rsp(GObex *obex, GObexPacket *req,
 			GObexDataConsumer data_func, GObexFunc complete_func,
 			gpointer user_data, GError **err,
-			guint8 first_hdr_id, ...)
+			guint first_hdr_id, ...)
 {
 	struct transfer *transfer;
 	va_list args;
@@ -471,7 +471,7 @@ guint g_obex_get_req_pkt(GObex *obex, GObexPacket *req,

 guint g_obex_get_req(GObex *obex, GObexDataConsumer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...)
+			GError **err, guint first_hdr_id, ...)
 {
 	struct transfer *transfer;
 	GObexPacket *req;
@@ -617,7 +617,7 @@ guint g_obex_get_rsp_pkt(GObex *obex, GObexPacket *rsp,

 guint g_obex_get_rsp(GObex *obex, GObexDataProducer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...)
+			GError **err, guint first_hdr_id, ...)
 {
 	GObexPacket *rsp;
 	va_list args;
diff --git a/gobex/gobex.c b/gobex/gobex.c
index 42175fc..0e5817e 100644
--- a/gobex/gobex.c
+++ b/gobex/gobex.c
@@ -853,7 +853,7 @@ immediate_completion:
 }

 gboolean g_obex_send_rsp(GObex *obex, guint8 rspcode, GError **err,
-						guint8 first_hdr_type, ...)
+						guint first_hdr_type, ...)
 {
 	GObexPacket *rsp;
 	va_list args;
@@ -1549,7 +1549,7 @@ void g_obex_unref(GObex *obex)
 /* Higher level functions */

 guint g_obex_connect(GObex *obex, GObexResponseFunc func, gpointer user_data,
-					GError **err, guint8 first_hdr_id, ...)
+					GError **err, guint first_hdr_id, ...)
 {
 	GObexPacket *req;
 	struct connect_data data;
diff --git a/gobex/gobex.h b/gobex/gobex.h
index 5bc9103..b223a2f 100644
--- a/gobex/gobex.h
+++ b/gobex/gobex.h
@@ -51,7 +51,7 @@ gboolean g_obex_cancel_req(GObex *obex, guint req_id,
 						gboolean remove_callback);

 gboolean g_obex_send_rsp(GObex *obex, guint8 rspcode, GError **err,
-						guint8 first_hdr_type, ...);
+						guint first_hdr_type, ...);

 void g_obex_set_disconnect_function(GObex *obex, GObexFunc func,
 							gpointer user_data);
@@ -73,7 +73,7 @@ void g_obex_unref(GObex *obex);
 /* High level client functions */

 guint g_obex_connect(GObex *obex, GObexResponseFunc func, gpointer user_data,
-				GError **err, guint8 first_hdr_id, ...);
+				GError **err, guint first_hdr_id, ...);

 guint g_obex_disconnect(GObex *obex, GObexResponseFunc func, gpointer user_data,
 								GError **err);
@@ -102,7 +102,7 @@ guint g_obex_abort(GObex *obex, GObexResponseFunc func, gpointer user_data,

 guint g_obex_put_req(GObex *obex, GObexDataProducer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...);
+			GError **err, guint first_hdr_id, ...);

 guint g_obex_put_req_pkt(GObex *obex, GObexPacket *req,
 			GObexDataProducer data_func, GObexFunc complete_func,
@@ -110,7 +110,7 @@ guint g_obex_put_req_pkt(GObex *obex, GObexPacket *req,

 guint g_obex_get_req(GObex *obex, GObexDataConsumer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...);
+			GError **err, guint first_hdr_id, ...);

 guint g_obex_get_req_pkt(GObex *obex, GObexPacket *req,
 			GObexDataConsumer data_func, GObexFunc complete_func,
@@ -119,11 +119,11 @@ guint g_obex_get_req_pkt(GObex *obex, GObexPacket *req,
 guint g_obex_put_rsp(GObex *obex, GObexPacket *req,
 			GObexDataConsumer data_func, GObexFunc complete_func,
 			gpointer user_data, GError **err,
-			guint8 first_hdr_id, ...);
+			guint first_hdr_id, ...);

 guint g_obex_get_rsp(GObex *obex, GObexDataProducer data_func,
 			GObexFunc complete_func, gpointer user_data,
-			GError **err, guint8 first_hdr_id, ...);
+			GError **err, guint first_hdr_id, ...);

 guint g_obex_get_rsp_pkt(GObex *obex, GObexPacket *rsp,
 			GObexDataProducer data_func, GObexFunc complete_func,
--
2.8.0.rc3.226.g39d4020


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2016-11-19  1:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-11-19  1:45 [PATCH v2] gobex: Fix a compilation error for the compatibility with LLVM mcchou

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.