|  | @@ -1866,7 +1866,7 @@ static routerinfo_t *desc_routerinfo = NULL;
 | 
	
		
			
				|  |  |  static extrainfo_t *desc_extrainfo = NULL;
 | 
	
		
			
				|  |  |  /** Why did we most recently decide to regenerate our descriptor?  Used to
 | 
	
		
			
				|  |  |   * tell the authorities why we're sending it to them. */
 | 
	
		
			
				|  |  | -static const char *desc_gen_reason = NULL;
 | 
	
		
			
				|  |  | +static const char *desc_gen_reason = "uninitialized reason";
 | 
	
		
			
				|  |  |  /** Since when has our descriptor been "clean"?  0 if we need to regenerate it
 | 
	
		
			
				|  |  |   * now. */
 | 
	
		
			
				|  |  |  static time_t desc_clean_since = 0;
 | 
	
	
		
			
				|  | @@ -2454,6 +2454,9 @@ router_rebuild_descriptor(int force)
 | 
	
		
			
				|  |  |    desc_clean_since = time(NULL);
 | 
	
		
			
				|  |  |    desc_needs_upload = 1;
 | 
	
		
			
				|  |  |    desc_gen_reason = desc_dirty_reason;
 | 
	
		
			
				|  |  | +  if (BUG(desc_gen_reason == NULL)) {
 | 
	
		
			
				|  |  | +    desc_gen_reason = "descriptor was marked dirty earlier, for no reason.";
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    desc_dirty_reason = NULL;
 | 
	
		
			
				|  |  |    control_event_my_descriptor_changed();
 | 
	
		
			
				|  |  |    return 0;
 | 
	
	
		
			
				|  | @@ -2510,6 +2513,9 @@ void
 | 
	
		
			
				|  |  |  mark_my_descriptor_dirty(const char *reason)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |    const or_options_t *options = get_options();
 | 
	
		
			
				|  |  | +  if (BUG(reason == NULL)) {
 | 
	
		
			
				|  |  | +    reason = "marked descriptor dirty for unspecified reason";
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |    if (server_mode(options) && options->PublishServerDescriptor_)
 | 
	
		
			
				|  |  |      log_info(LD_OR, "Decided to publish new relay descriptor: %s", reason);
 | 
	
		
			
				|  |  |    desc_clean_since = 0;
 |