snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s=%s)",
                        f->f_av_desc->ad_cname.bv_val,
-                       tmp.bv_val );
+                       tmp.bv_len ? tmp.bv_val : "(null)");
 
                ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                break;
 
                snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s>=%s)",
                        f->f_av_desc->ad_cname.bv_val,
-                       tmp.bv_val );
+                       tmp.bv_len ? tmp.bv_val : "(null)");
 
                ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                break;
 
                snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s<=%s)",
                        f->f_av_desc->ad_cname.bv_val,
-                       tmp.bv_val );
+                       tmp.bv_len ? tmp.bv_val : "(null)");
 
                ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                break;
 
                snprintf( fstr->bv_val, fstr->bv_len + 1, "(%s~=%s)",
                        f->f_av_desc->ad_cname.bv_val,
-                       tmp.bv_val );
+                       tmp.bv_len ? tmp.bv_val : "(null)");
                ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                break;
 
 
                        snprintf( &fstr->bv_val[len-2], tmp.bv_len+3,
                                /* "(attr=" */ "%s*)",
-                               tmp.bv_val );
+                               tmp.bv_len ? tmp.bv_val : "(null)");
 
                        ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                }
 
                                snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
                                        /* "(attr=[init]*[any*]" */ "%s*)",
-                                       tmp.bv_val );
+                                       tmp.bv_len ? tmp.bv_val : "(null)");
                                ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                        }
                }
 
                        snprintf( &fstr->bv_val[len-1], tmp.bv_len+3,
                                /* "(attr=[init*][any*]" */ "%s)",
-                               tmp.bv_val );
+                               tmp.bv_len ? tmp.bv_val : "(null)");
 
                        ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                }
                                f->f_mr_dnattrs ? ":dn" : "",
                                f->f_mr_rule_text.bv_len ? ":" : "",
                                f->f_mr_rule_text.bv_len ? f->f_mr_rule_text.bv_val : "",
-                               tmp.bv_val );
+                               tmp.bv_len ? tmp.bv_val : "(null)");
                        ber_memfree_x( tmp.bv_val, op->o_tmpmemctx );
                } break;
 
 
 
        Debug( LDAP_DEBUG_TRACE,
           "==>slap_sasl_authorized: can %s become %s?\n",
-               authcDN->bv_val, authzDN->bv_val, 0 );
+               authcDN->bv_len ? authcDN->bv_val : "(null)",
+               authzDN->bv_len ? authzDN->bv_val : "(null)",  0 );
 
        /* If person is authorizing to self, succeed */
        if ( dn_match( authcDN, authzDN ) ) {