From ed690aa402925f6bb4f019c1f1aa4c2ce3f64fd1 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Wed, 12 Oct 2005 23:33:52 +0000 Subject: [PATCH] Operation buffer align fix from HEAD --- servers/slapd/back-bdb/config.c | 4 ++-- servers/slapd/back-monitor/init.c | 4 ++-- servers/slapd/back-sql/init.c | 8 ++++---- servers/slapd/bconfig.c | 8 ++++---- servers/slapd/overlays/accesslog.c | 4 ++-- servers/slapd/overlays/pcache.c | 4 ++-- servers/slapd/overlays/syncprov.c | 12 ++++++------ servers/slapd/slap.h | 6 +++++- servers/slapd/slapacl.c | 4 ++-- servers/slapd/slapadd.c | 24 ++++++++++++------------ servers/slapd/slapauth.c | 4 ++-- servers/slapd/syncrepl.c | 4 ++-- 12 files changed, 45 insertions(+), 41 deletions(-) diff --git a/servers/slapd/back-bdb/config.c b/servers/slapd/back-bdb/config.c index 5c5ff8428e..fa2bf98de5 100644 --- a/servers/slapd/back-bdb/config.c +++ b/servers/slapd/back-bdb/config.c @@ -172,8 +172,8 @@ bdb_online_index( void *ctx, void *arg ) struct bdb_info *bdb = be->be_private; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; - Operation *op = (Operation *)opbuf; + OperationBuffer opbuf; + Operation *op = (Operation *) &opbuf; DBC *curs; DBT key, data; diff --git a/servers/slapd/back-monitor/init.c b/servers/slapd/back-monitor/init.c index cccdec1531..50cb2b44c1 100644 --- a/servers/slapd/back-monitor/init.c +++ b/servers/slapd/back-monitor/init.c @@ -642,7 +642,7 @@ monitor_filter2ndn( struct berval *ndn ) { Connection conn = { 0 }; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; SlapReply rs = { 0 }; slap_callback cb = { NULL, monitor_filter2ndn_cb, NULL, NULL }; @@ -654,7 +654,7 @@ monitor_filter2ndn( return -1; } - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, &conn ); op->o_tag = LDAP_REQ_SEARCH; diff --git a/servers/slapd/back-sql/init.c b/servers/slapd/back-sql/init.c index 1c9913febd..40a4478c1f 100644 --- a/servers/slapd/back-sql/init.c +++ b/servers/slapd/back-sql/init.c @@ -224,8 +224,8 @@ backsql_db_open( SQLHDBC dbh = SQL_NULL_HDBC; struct berbuf bb = BB_NULL; - char opbuf[ OPERATION_BUFFER_SIZE ]; - Operation* op = (Operation *)opbuf; + OperationBuffer opbuf; + Operation* op = (Operation *) &opbuf; Debug( LDAP_DEBUG_TRACE, "==>backsql_db_open(): " "testing RDBMS connection\n", 0, 0, 0 ); @@ -581,8 +581,8 @@ backsql_db_close( int backsql_connection_destroy( Backend *bd, Connection *c ) { - char opbuf[ OPERATION_BUFFER_SIZE ]; - Operation* op = (Operation *)opbuf; + OperationBuffer opbuf; + Operation* op = (Operation *) &opbuf; op->o_hdr = (Opheader *)&op[ 1 ]; op->o_connid = c->c_connid; diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index 86c9daf8fb..3dd6cfc0cc 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -2613,7 +2613,7 @@ config_setup_ldif( BackendDB *be, const char *dir, int readit ) { setup_cookie sc; slap_callback cb = { NULL, config_ldif_resp, NULL, NULL }; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; SlapReply rs = {REP_RESULT}; Filter filter = { LDAP_FILTER_PRESENT }; @@ -2665,7 +2665,7 @@ config_setup_ldif( BackendDB *be, const char *dir, int readit ) { if ( readit ) { void *thrctx = ldap_pvt_thread_pool_context(); - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, thrctx ); filter.f_desc = slap_schema.si_ad_objectClass; @@ -4053,7 +4053,7 @@ config_back_db_open( BackendDB *be ) BackendInfo *bi; ConfigArgs c; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; slap_callback cb = { NULL, slap_null_cb, NULL, NULL }; SlapReply rs = {REP_RESULT}; @@ -4065,7 +4065,7 @@ config_back_db_open( BackendDB *be ) if ( cfb->cb_use_ldif ) { thrctx = ldap_pvt_thread_pool_context(); - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, thrctx ); op->o_dn = be->be_rootdn; diff --git a/servers/slapd/overlays/accesslog.c b/servers/slapd/overlays/accesslog.c index 6ef157277e..9da3a59b30 100644 --- a/servers/slapd/overlays/accesslog.c +++ b/servers/slapd/overlays/accesslog.c @@ -464,8 +464,8 @@ accesslog_purge( void *ctx, void *arg ) struct log_info *li = rtask->arg; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; - Operation *op = (Operation *)opbuf; + OperationBuffer opbuf; + Operation *op = (Operation *) &opbuf; SlapReply rs = {REP_RESULT}; slap_callback cb = { NULL, log_old_lookup, NULL, NULL }; Filter f; diff --git a/servers/slapd/overlays/pcache.c b/servers/slapd/overlays/pcache.c index 73ae35a272..3b594f96f4 100644 --- a/servers/slapd/overlays/pcache.c +++ b/servers/slapd/overlays/pcache.c @@ -1462,7 +1462,7 @@ consistency_check( cache_manager *cm = on->on_bi.bi_private; query_manager *qm = cm->qm; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; SlapReply rs = {REP_RESULT}; @@ -1470,7 +1470,7 @@ consistency_check( int i, return_val, pause = 1; QueryTemplate* templ; - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, ctx ); op->o_bd = &cm->db; diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 5c0b7cf4ef..4070d5dd09 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -861,11 +861,11 @@ syncprov_qtask( void *ctx, void *arg ) struct re_s *rtask = arg; syncops *so = rtask->arg; slap_overinst *on = so->s_op->o_private; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; BackendDB be; - op = (Operation *)opbuf; + op = (Operation *) &opbuf; *op = *so->s_op; op->o_hdr = (Opheader *)(op+1); op->o_controls = (void **)(op->o_hdr+1); @@ -2217,9 +2217,9 @@ syncprov_db_open( syncprov_info_t *si = (syncprov_info_t *)on->on_bi.bi_private; Connection conn; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; char ctxcsnbuf[LDAP_LUTIL_CSNSTR_BUFSIZE]; - Operation *op = (Operation *)opbuf; + Operation *op = (Operation *) &opbuf; Entry *e; Attribute *a; int rc; @@ -2307,8 +2307,8 @@ syncprov_db_close( } if ( si->si_numops ) { Connection conn; - char opbuf[OPERATION_BUFFER_SIZE]; - Operation *op = (Operation *)opbuf; + OperationBuffer opbuf; + Operation *op = (Operation *) &opbuf; SlapReply rs = {REP_RESULT}; void *thrctx; diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index 0a628f79be..3faf4595df 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -2555,7 +2555,11 @@ typedef struct slap_op { LDAP_STAILQ_ENTRY(slap_op) o_next; /* next operation in list */ } Operation; -#define OPERATION_BUFFER_SIZE (sizeof(Operation)+sizeof(Opheader)+SLAP_MAX_CIDS*sizeof(void *)) +#define OPERATION_BUFFER_SIZE ( sizeof(Operation) + sizeof(Opheader) + \ + SLAP_MAX_CIDS*sizeof(void *) ) + +typedef LBER_ALIGNED_BUFFER(operation_buffer_u,OPERATION_BUFFER_SIZE) + OperationBuffer; #define send_ldap_error( op, rs, err, text ) do { \ (rs)->sr_err = err; (rs)->sr_text = text; \ diff --git a/servers/slapd/slapacl.c b/servers/slapd/slapacl.c index 13dfccc882..a30d033891 100644 --- a/servers/slapd/slapacl.c +++ b/servers/slapd/slapacl.c @@ -65,7 +65,7 @@ slapacl( int argc, char **argv ) const char *progname = "slapacl"; Connection conn = { 0 }; Listener listener; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op = NULL; Entry e = { 0 }, *ep = &e; char *attr = NULL; @@ -94,7 +94,7 @@ slapacl( int argc, char **argv ) argv = &argv[ optind ]; argc -= optind; - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, &conn ); conn.c_listener = &listener; diff --git a/servers/slapd/slapadd.c b/servers/slapd/slapadd.c index 23d3c0b2af..2b4cd4f934 100644 --- a/servers/slapd/slapadd.c +++ b/servers/slapd/slapadd.c @@ -44,33 +44,33 @@ static char maxcsnbuf[ LDAP_LUTIL_CSNSTR_BUFSIZE ]; int slapadd( int argc, char **argv ) { - char *buf = NULL; - int lineno; - int lmax; - int rc = EXIT_SUCCESS; - + char *buf = NULL; const char *text; char textbuf[SLAP_TEXT_BUFLEN] = { '\0' }; size_t textlen = sizeof textbuf; const char *progname = "slapadd"; - int manage = 0; struct berval csn; struct berval maxcsn; - int match; + struct berval bvtext; Attribute *attr; Entry *ctxcsn_e; ID ctxcsn_id, id; + OperationBuffer opbuf; + Operation *op; + + int match; int ret; - struct berval bvtext; int checkvals; - char opbuf[OPERATION_BUFFER_SIZE]; - Operation *op; + int lineno; + int lmax; + int rc = EXIT_SUCCESS; + int manage = 0; slap_tool_init( progname, SLAPADD, argc, argv ); - memset( opbuf, 0, sizeof(opbuf) ); - op = (Operation *)opbuf; + memset( &opbuf, 0, sizeof(opbuf) ); + op = (Operation *) &opbuf; if( !be->be_entry_open || !be->be_entry_close || diff --git a/servers/slapd/slapauth.c b/servers/slapd/slapauth.c index 6e61ff163e..d0c041873b 100644 --- a/servers/slapd/slapauth.c +++ b/servers/slapd/slapauth.c @@ -80,7 +80,7 @@ slapauth( int argc, char **argv ) int rc = EXIT_SUCCESS; const char *progname = "slapauth"; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; slap_tool_init( progname, SLAPAUTH, argc, argv ); @@ -88,7 +88,7 @@ slapauth( int argc, char **argv ) argv = &argv[ optind ]; argc -= optind; - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, &conn ); conn.c_sasl_bind_mech = mech; diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index 59ba0302aa..deeacc5f49 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -902,7 +902,7 @@ do_syncrepl( struct re_s* rtask = arg; syncinfo_t *si = ( syncinfo_t * ) rtask->arg; Connection conn = {0}; - char opbuf[OPERATION_BUFFER_SIZE]; + OperationBuffer opbuf; Operation *op; int rc = LDAP_SUCCESS; int first = 0; @@ -938,7 +938,7 @@ do_syncrepl( return NULL; } - op = (Operation *)opbuf; + op = (Operation *) &opbuf; connection_fake_init( &conn, op, ctx ); /* use global malloc for now */ -- 2.39.5