electrum

Electrum Bitcoin wallet
git clone https://git.parazyd.org/electrum
Log | Files | Refs | Submodules

cdrkit-deterministic.patch (2090B)


      1 --- cdrkit-1.1.11.old/genisoimage/tree.c	2008-10-21 19:57:47.000000000 -0400
      2 +++ cdrkit-1.1.11/genisoimage/tree.c	2013-12-06 00:23:18.489622668 -0500
      3 @@ -1139,8 +1139,9 @@
      4  scan_directory_tree(struct directory *this_dir, char *path,
      5  						  struct directory_entry *de)
      6  {
      7 -	DIR		*current_dir;
      8 +        int             current_file;
      9  	char		whole_path[PATH_MAX];
     10 +        struct dirent  **d_list;
     11  	struct dirent	*d_entry;
     12  	struct directory *parent;
     13  	int		dflag;
     14 @@ -1164,7 +1165,8 @@
     15  	this_dir->dir_flags |= DIR_WAS_SCANNED;
     16 
     17  	errno = 0;	/* Paranoia */
     18 -	current_dir = opendir(path);
     19 +	//current_dir = opendir(path);
     20 +        current_file = scandir(path, &d_list, NULL, alphasort);
     21  	d_entry = NULL;
     22 
     23  	/*
     24 @@ -1173,12 +1175,12 @@
     25  	 */
     26  	old_path = path;
     27 
     28 -	if (current_dir) {
     29 +	if (current_file >= 0) {
     30  		errno = 0;
     31 -		d_entry = readdir(current_dir);
     32 +		d_entry = d_list[0];
     33  	}
     34 
     35 -	if (!current_dir || !d_entry) {
     36 +	if (current_file < 0 || !d_entry) {
     37  		int	ret = 1;
     38 
     39  #ifdef	USE_LIBSCHILY
     40 @@ -1191,8 +1193,8 @@
     41  			de->isorec.flags[0] &= ~ISO_DIRECTORY;
     42  			ret = 0;
     43  		}
     44 -		if (current_dir)
     45 -			closedir(current_dir);
     46 +		if(d_list)
     47 +			free(d_list);
     48  		return (ret);
     49  	}
     50  #ifdef	ABORT_DEEP_ISO_ONLY
     51 @@ -1208,7 +1210,7 @@
     52  			errmsgno(EX_BAD, "use Rock Ridge extensions via -R or -r,\n");
     53  			errmsgno(EX_BAD, "or allow deep ISO9660 directory nesting via -D.\n");
     54  		}
     55 -		closedir(current_dir);
     56 +		free(d_list);
     57  		return (1);
     58  	}
     59  #endif
     60 @@ -1250,13 +1252,13 @@
     61  		 * The first time through, skip this, since we already asked
     62  		 * for the first entry when we opened the directory.
     63  		 */
     64 -		if (dflag)
     65 -			d_entry = readdir(current_dir);
     66 +		if (dflag && current_file >= 0)
     67 +			d_entry = d_list[current_file];
     68  		dflag++;
     69 
     70 -		if (!d_entry)
     71 +		if (current_file < 0)
     72  			break;
     73 -
     74 +                current_file--;
     75  		/* OK, got a valid entry */
     76 
     77  		/* If we do not want all files, then pitch the backups. */
     78 @@ -1348,7 +1350,7 @@
     79  		insert_file_entry(this_dir, whole_path, d_entry->d_name);
     80  #endif	/* APPLE_HYB */
     81  	}
     82 -	closedir(current_dir);
     83 +	free(d_list);
     84 
     85  #ifdef APPLE_HYB
     86  	/*