|  | @@ -650,12 +650,16 @@ static void duoram_test(MPCIO &mpcio,
 | 
	
		
			
				|  |  |          ++args;
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      share &= ((address_t(1)<<depth)-1);
 | 
	
		
			
				|  |  | +    address_t len = (1<<depth);
 | 
	
		
			
				|  |  | +    if (*args) {
 | 
	
		
			
				|  |  | +        len = atoi(*args);
 | 
	
		
			
				|  |  | +        ++args;
 | 
	
		
			
				|  |  | +    }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      MPCTIO tio(mpcio, 0, opts.num_threads);
 | 
	
		
			
				|  |  | -    run_coroutines(tio, [&tio, depth, share] (yield_t &yield) {
 | 
	
		
			
				|  |  | -        size_t size = size_t(1)<<depth;
 | 
	
		
			
				|  |  | +    run_coroutines(tio, [&tio, depth, share, len] (yield_t &yield) {
 | 
	
		
			
				|  |  |          // size_t &aes_ops = tio.aes_ops();
 | 
	
		
			
				|  |  | -        Duoram<T> oram(tio.player(), size);
 | 
	
		
			
				|  |  | +        Duoram<T> oram(tio.player(), len);
 | 
	
		
			
				|  |  |          auto A = oram.flat(tio, yield);
 | 
	
		
			
				|  |  |          RegAS aidx, aidx2, aidx3;
 | 
	
		
			
				|  |  |          aidx.ashare = share;
 | 
	
	
		
			
				|  | @@ -713,7 +717,7 @@ static void duoram_test(MPCIO &mpcio,
 | 
	
		
			
				|  |  |              oram.dump();
 | 
	
		
			
				|  |  |              auto check = A.reconstruct();
 | 
	
		
			
				|  |  |              if (tio.player() == 0) {
 | 
	
		
			
				|  |  | -                for (address_t i=0;i<size;++i) {
 | 
	
		
			
				|  |  | +                for (address_t i=0;i<len;++i) {
 | 
	
		
			
				|  |  |                      printf("%04x %016lx\n", i, check[i].share());
 | 
	
		
			
				|  |  |                  }
 | 
	
		
			
				|  |  |              }
 |