[SCM] Samba Shared Repository - branch master updated
Volker Lendecke
vlendec at samba.org
Fri Jul 22 21:34:02 UTC 2016
The branch, master has been updated
via 0dd1c65 tevent: Add overflow protection to tevent_req_create
via 8e989a1 tevent: Save 140 bytes of .text in tevent_req_create
via 4110d73 tevent: Save 32 bytes of .text in tevent_req_create
from 281b73f build: Add hints on what libraries to install for gpgme support on failure
https://git.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 0dd1c658c76ab24095ca591aa6e5a85ed59ff5f8
Author: Volker Lendecke <vl at samba.org>
Date: Fri Jul 22 16:12:25 2016 +0200
tevent: Add overflow protection to tevent_req_create
This adds 40 bytes, but they are needed for correctness :-)
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
Autobuild-User(master): Volker Lendecke <vl at samba.org>
Autobuild-Date(master): Fri Jul 22 23:33:57 CEST 2016 on sn-devel-144
commit 8e989a1afbdb024ae9200d89f18a5b107b181a98
Author: Volker Lendecke <vl at samba.org>
Date: Fri Jul 22 16:06:45 2016 +0200
tevent: Save 140 bytes of .text in tevent_req_create
This is one of or hottest code paths, I think every bit counts here.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
commit 4110d73c3c53ca5cf87e3a34dc65d1835a49b57d
Author: Volker Lendecke <vl at samba.org>
Date: Fri Jul 22 16:06:45 2016 +0200
tevent: Save 32 bytes of .text in tevent_req_create
This is one of or hottest code paths, I think every bit counts here.
Signed-off-by: Volker Lendecke <vl at samba.org>
Reviewed-by: Stefan Metzmacher <metze at samba.org>
-----------------------------------------------------------------------
Summary of changes:
lib/tevent/tevent_req.c | 34 +++++++++++++++++++++-------------
1 file changed, 21 insertions(+), 13 deletions(-)
Changeset truncated at 500 lines:
diff --git a/lib/tevent/tevent_req.c b/lib/tevent/tevent_req.c
index c86fb68..e2b7104 100644
--- a/lib/tevent/tevent_req.c
+++ b/lib/tevent/tevent_req.c
@@ -62,6 +62,13 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx,
struct tevent_req *req;
void **ppdata = (void **)pdata;
void *data;
+ size_t payload;
+
+ payload = sizeof(struct tevent_immediate) + data_size;
+ if (payload < sizeof(struct tevent_immediate)) {
+ /* overflow */
+ return NULL;
+ }
req = talloc_pooled_object(
mem_ctx, struct tevent_req, 2,
@@ -69,21 +76,22 @@ struct tevent_req *_tevent_req_create(TALLOC_CTX *mem_ctx,
if (req == NULL) {
return NULL;
}
- ZERO_STRUCTP(req);
- req->internal.private_type = type;
- req->internal.create_location = location;
- req->internal.state = TEVENT_REQ_IN_PROGRESS;
- req->internal.trigger = tevent_create_immediate(req);
- if (!req->internal.trigger) {
- talloc_free(req);
- return NULL;
- }
+
+ *req = (struct tevent_req) {
+ .internal.private_type = type,
+ .internal.create_location = location,
+ .internal.state = TEVENT_REQ_IN_PROGRESS,
+ .internal.trigger = tevent_create_immediate(req)
+ };
data = talloc_zero_size(req, data_size);
- if (data == NULL) {
- talloc_free(req);
- return NULL;
- }
+
+ /*
+ * No need to check for req->internal.trigger!=NULL or
+ * data!=NULL, this can't fail: talloc_pooled_object has
+ * already allocated sufficient memory.
+ */
+
talloc_set_name_const(data, type);
req->data = data;
--
Samba Shared Repository
More information about the samba-cvs
mailing list