@@ -344,7 +344,7 @@ int dhcpv6_client_fields_store(request_t *request, process_dhcpv6_rctx_t *rctx,
344344 return -1 ;
345345 }
346346
347- rctx -> transaction_id = fr_pair_copy (rctx , transaction_id );
347+ MEM ( rctx -> transaction_id = fr_pair_copy (rctx , transaction_id ) );
348348
349349 fr_pair_list_init (& rctx -> client_id );
350350 fr_pair_list_init (& rctx -> server_id );
@@ -357,13 +357,11 @@ int dhcpv6_client_fields_store(request_t *request, process_dhcpv6_rctx_t *rctx,
357357 & request -> request_pairs , attr_client_id )) {
358358 case -1 :
359359 REDEBUG ("Error copying Client-ID" );
360- error :
361- talloc_free (rctx );
362360 return -1 ;
363361
364362 case 0 :
365363 REDEBUG ("Missing Client-ID" );
366- goto error ;
364+ return -1 ;
367365
368366 default :
369367 break ;
@@ -373,19 +371,19 @@ int dhcpv6_client_fields_store(request_t *request, process_dhcpv6_rctx_t *rctx,
373371 & request -> request_pairs , attr_server_id )) {
374372 case -1 :
375373 REDEBUG ("Error copying Server-ID" );
376- goto error ;
374+ return -1 ;
377375
378376 case 0 :
379377 if (expect_server_id ) {
380378 REDEBUG ("Missing Server-ID" );
381- goto error ;
379+ return -1 ;
382380 }
383381 break ;
384382
385383 default :
386384 if (!expect_server_id ) {
387385 REDEBUG ("Server-ID should not be present" );
388- goto error ;
386+ return -1 ;
389387 }
390388 break ;
391389 }
@@ -558,14 +556,14 @@ void status_code_add(process_dhcpv6_t const *inst, request_t *request, fr_value_
558556 fr_sbuff_uctx_talloc_t tctx ;
559557 fr_sbuff_t sbuff ;
560558
561- do {
562- /*
563- * Create an aggregation buffer up to
564- * the maximum length of a status
565- * message.
566- */
567- fr_sbuff_init_talloc (vp , & sbuff , & tctx , 1024 , UINT16_MAX - 2 );
559+ /*
560+ * Create an aggregation buffer up to
561+ * the maximum length of a status
562+ * message.
563+ */
564+ fr_sbuff_init_talloc (vp , & sbuff , & tctx , 1024 , UINT16_MAX - 2 );
568565
566+ do {
569567 /*
570568 * Best effort... it's probably OK
571569 * if we truncate really long messages.
@@ -575,6 +573,7 @@ void status_code_add(process_dhcpv6_t const *inst, request_t *request, fr_value_
575573 } while ((failure_message = fr_pair_find_by_da (& request -> request_pairs , failure_message ,
576574 attr_module_failure_message )) &&
577575 (fr_sbuff_in_strcpy_literal (& sbuff , ". " ) == 2 ));
576+
578577 fr_sbuff_trim_talloc (& sbuff , SIZE_MAX ); /* Fix size */
579578 fr_pair_value_bstrndup_shallow (vp , fr_sbuff_start (& sbuff ), fr_sbuff_used (& sbuff ), false);
580579 }
0 commit comments