From f2e1b78391b1397ef3c225f4f2eb643a5bbb1d72 Mon Sep 17 00:00:00 2001 From: Pierangelo Masarati Date: Mon, 3 Aug 2009 22:49:30 +0000 Subject: [PATCH] silence warnings; misc cleanup; test refresh as non-allowed user --- servers/slapd/overlays/dds.c | 52 ++++++++++++++++++------------------ tests/scripts/test046-dds | 13 ++++++++- 2 files changed, 38 insertions(+), 27 deletions(-) diff --git a/servers/slapd/overlays/dds.c b/servers/slapd/overlays/dds.c index fda9d70edb..a6c8db976d 100644 --- a/servers/slapd/overlays/dds.c +++ b/servers/slapd/overlays/dds.c @@ -581,7 +581,8 @@ dds_op_modify( Operation *op, SlapReply *rs ) } } else if ( mod->sml_desc == slap_schema.si_ad_entryTtl ) { - unsigned long ttl; + unsigned long uttl; + time_t ttl; int rc; switch ( mod->sml_op ) { @@ -628,7 +629,8 @@ dds_op_modify( Operation *op, SlapReply *rs ) goto done; } - rc = lutil_atoul( &ttl, mod->sml_values[ 0 ].bv_val ); + rc = lutil_atoul( &uttl, mod->sml_values[ 0 ].bv_val ); + ttl = (time_t)uttl; assert( rc == 0 ); if ( ttl > DDS_RF2589_MAX_TTL ) { rs->sr_err = LDAP_PROTOCOL_ERROR; @@ -645,7 +647,7 @@ dds_op_modify( Operation *op, SlapReply *rs ) goto done; } - entryTtl = (time_t)ttl; + entryTtl = ttl; bv_entryTtl.bv_len = mod->sml_values[ 0 ].bv_len; AC_MEMCPY( bv_entryTtl.bv_val, mod->sml_values[ 0 ].bv_val, bv_entryTtl.bv_len ); bv_entryTtl.bv_val[ bv_entryTtl.bv_len ] = '\0'; @@ -1120,26 +1122,24 @@ dds_op_extended( Operation *op, SlapReply *rs ) BerElementBuffer berbuf; BerElement *ber = (BerElement *)&berbuf; - if ( rs->sr_err == LDAP_SUCCESS ) { - ber_init_w_nullc( ber, LBER_USE_DER ); - - rc = ber_printf( ber, "{tiN}", LDAP_TAG_EXOP_REFRESH_RES_TTL, (int)ttl ); + ber_init_w_nullc( ber, LBER_USE_DER ); - if ( rc < 0 ) { - rs->sr_err = LDAP_OTHER; - rs->sr_text = "internal error"; + rc = ber_printf( ber, "{tiN}", LDAP_TAG_EXOP_REFRESH_RES_TTL, (int)ttl ); - } else { - (void)ber_flatten( ber, &rs->sr_rspdata ); - rs->sr_rspoid = ch_strdup( slap_EXOP_REFRESH.bv_val ); + if ( rc < 0 ) { + rs->sr_err = LDAP_OTHER; + rs->sr_text = "internal error"; - Log3( LDAP_DEBUG_TRACE, LDAP_LEVEL_INFO, - "%s REFRESH dn=\"%s\" TTL=%ld\n", - op->o_log_prefix, op->o_req_ndn.bv_val, ttl ); - } + } else { + (void)ber_flatten( ber, &rs->sr_rspdata ); + rs->sr_rspoid = ch_strdup( slap_EXOP_REFRESH.bv_val ); - ber_free_buf( ber ); + Log3( LDAP_DEBUG_TRACE, LDAP_LEVEL_INFO, + "%s REFRESH dn=\"%s\" TTL=%ld\n", + op->o_log_prefix, op->o_req_ndn.bv_val, ttl ); } + + ber_free_buf( ber ); } return rs->sr_err; @@ -1390,7 +1390,7 @@ dds_cfgen( ConfigArgs *c ) if ( t < DDS_RF2589_DEFAULT_TTL || t > DDS_RF2589_MAX_TTL ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), - "DDS invalid dds-max-ttl=%ld; must be between %d and %d", + "DDS invalid dds-max-ttl=%lu; must be between %d and %d", t, DDS_RF2589_DEFAULT_TTL, DDS_RF2589_MAX_TTL ); Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR, "%s: %s.\n", c->log, c->cr_msg ); @@ -1410,9 +1410,9 @@ dds_cfgen( ConfigArgs *c ) return 1; } - if ( t < 0 || t > DDS_RF2589_MAX_TTL ) { + if ( t > DDS_RF2589_MAX_TTL ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), - "DDS invalid dds-min-ttl=%ld", + "DDS invalid dds-min-ttl=%lu", t ); Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR, "%s: %s.\n", c->log, c->cr_msg ); @@ -1437,9 +1437,9 @@ dds_cfgen( ConfigArgs *c ) return 1; } - if ( t < 0 || t > DDS_RF2589_MAX_TTL ) { + if ( t > DDS_RF2589_MAX_TTL ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), - "DDS invalid dds-default-ttl=%ld", + "DDS invalid dds-default-ttl=%lu", t ); Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR, "%s: %s.\n", c->log, c->cr_msg ); @@ -1466,7 +1466,7 @@ dds_cfgen( ConfigArgs *c ) if ( t <= 0 ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), - "DDS invalid dds-interval=%ld", + "DDS invalid dds-interval=%lu", t ); Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR, "%s: %s.\n", c->log, c->cr_msg ); @@ -1501,9 +1501,9 @@ dds_cfgen( ConfigArgs *c ) return 1; } - if ( t < 0 || t > DDS_RF2589_MAX_TTL ) { + if ( t > DDS_RF2589_MAX_TTL ) { snprintf( c->cr_msg, sizeof( c->cr_msg ), - "DDS invalid dds-tolerance=%ld", + "DDS invalid dds-tolerance=%lu", t ); Log2( LDAP_DEBUG_ANY, LDAP_LEVEL_ERR, "%s: %s.\n", c->log, c->cr_msg ); diff --git a/tests/scripts/test046-dds b/tests/scripts/test046-dds index 3a4c902262..bd74150fd0 100755 --- a/tests/scripts/test046-dds +++ b/tests/scripts/test046-dds @@ -396,7 +396,7 @@ member: $BJORNSDN dn: $MEETINGDN changetype: modify add: member -member: $JAJDN +member: $JOHNDDN EOMODS RC=$? if test $RC != 0 ; then @@ -478,6 +478,17 @@ if test $RC = 0 ; then exit $RC fi +echo "Trying to refresh the meeting as $JAJDN (should fail)..." +$LDAPEXOP -D "$JAJDN" -w "jaj" -h $LOCALHOST -p $PORT1 \ + "refresh" "$MEETINGDN" "240" \ + >> $TESTOUT 2>&1 +RC=$? +if test $RC = 0 ; then + echo "ldapexop should have failed ($RC)!" + test $KILLSERVERS != no && kill -HUP $KILLPIDS + exit $RC +fi + echo "Trying to delete the meeting as $BABSDN (should fail)..." $LDAPMODIFY -D "$BABSDN" -w bjensen -h $LOCALHOST -p $PORT1 \ >> $TESTOUT 2>&1 << EOMODS -- 2.39.5