Replaced some large local variables by other means in xorriso/disk_ops.c

master
Thomas Schmitt 12 years ago
parent 84d2a2ba9d
commit 59c60d410e

@ -42,9 +42,12 @@ int Xorriso_resolve_link(struct XorrisO *xorriso,
ssize_t l;
struct stat stbuf;
int link_count= 0, ret, show_errno= 0;
char buf[SfileadrL], dirbuf[SfileadrL], *lpt, *spt, sfe[5*SfileadrL];
char *buf= NULL, *dirbuf= NULL, *lpt, *spt;
static int link_limit= 100;
Xorriso_alloc_meM(buf, char, SfileadrL);
Xorriso_alloc_meM(dirbuf, char, SfileadrL);
if(!(flag&1))
if(stat(link_path, &stbuf)==-1)
if(errno==ELOOP) {
@ -57,35 +60,35 @@ int Xorriso_resolve_link(struct XorrisO *xorriso,
if(l==-1) {
handle_error:;
Xorriso_msgs_submit(xorriso, 0, link_path, 0, "ERRFILE", 0);
sprintf(xorriso->info_text, "Cannot obtain link target of : %s",
Text_shellsafe(link_path, sfe, 0));
sprintf(xorriso->info_text, "Cannot obtain link target of : ");
Text_shellsafe(link_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
handle_abort:;
if(strcmp(lpt, link_path)!=0) {
sprintf(xorriso->info_text,
"Problem occured with intermediate path : %s",
Text_shellsafe(lpt, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE",0);
"Problem occured with intermediate path : ");
Text_shellsafe(lpt, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
}
return(0);
{ret= 0; goto ex;}
}
buf[l]= 0;
if(l==0) {
Xorriso_msgs_submit(xorriso, 0, link_path, 0, "ERRFILE", 0);
sprintf(xorriso->info_text, "Empty link target with : %s",
Text_shellsafe(link_path, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE",0);
sprintf(xorriso->info_text, "Empty link target with : ");
Text_shellsafe(link_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0);
goto handle_abort;
}
if(flag&1) {
strcpy(result_path, buf);
return(1);
{ret= 1; goto ex;}
}
/* normalize relative to disk_path */
if(Sfile_str(dirbuf, lpt, 0)<=0)
return(-1);
{ret= -1; goto ex;}
while(1) {
spt= strrchr(dirbuf,'/');
if(spt!=NULL) {
@ -97,7 +100,7 @@ handle_abort:;
}
ret= Xorriso_normalize_img_path(xorriso, dirbuf, buf, result_path, 2|4);
if(ret<=0)
return(ret);
goto ex;
if(lstat(result_path, &stbuf)==-1) {
lpt= result_path;
@ -111,14 +114,18 @@ handle_abort:;
if(link_count>link_limit) {
too_many_hops:;
Xorriso_msgs_submit(xorriso, 0, link_path, 0, "ERRFILE", 0);
sprintf(xorriso->info_text, "Too many link hops with : %s",
Text_shellsafe(link_path, sfe, 0));
sprintf(xorriso->info_text, "Too many link hops with : ");
Text_shellsafe(link_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, show_errno,
"FAILURE",0);
return(0);
"FAILURE", 0);
{ret= 0; goto ex;}
}
}
return(1);
ret= 1;
ex:;
Xorriso_free_meM(buf);
Xorriso_free_meM(dirbuf);
return(ret);
}
@ -174,7 +181,7 @@ int Xorriso_convert_modstring(struct XorrisO *xorriso, char *cmd, char *mode,
mode_t *mode_and, mode_t *mode_or, int flag)
{
int who_val= 0;
char sfe[5*SfileadrL], *mpt, *vpt, *opt;
char *mpt, *vpt, *opt;
unsigned int num= 0;
mode_t mode_val,mask;
@ -260,8 +267,8 @@ int Xorriso_convert_modstring(struct XorrisO *xorriso, char *cmd, char *mode,
} else {
unrecognizable:;
sprintf(xorriso->info_text,
"%s: Unrecognizable or faulty permission mode %s\n", cmd,
Text_shellsafe(mode, sfe, 0));
"%s: Unrecognizable or faulty permission mode ", cmd);
Text_shellsafe(mode, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "SORRY", 0);
return(0);
}
@ -277,13 +284,12 @@ int Xorriso_hop_link(struct XorrisO *xorriso, char *link_path,
{
int ret;
struct LinkiteM *litm;
char sfe[5*SfileadrL];
if(*link_stack != NULL) {
if(Linkitem_get_link_count(*link_stack, 0) >= xorriso->follow_link_limit) {
sprintf(xorriso->info_text,
"Too many symbolic links in single tree branch at : %s",
Text_shellsafe(link_path, sfe, 0));
"Too many symbolic links in single tree branch at : ");
Text_shellsafe(link_path, xorriso->info_text, 1);
if(!(flag&2))
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0,"WARNING",flag&1);
return(0);
@ -294,9 +300,8 @@ int Xorriso_hop_link(struct XorrisO *xorriso, char *link_path,
return(0);
ret= Linkitem_find(*link_stack, stbuf->st_dev, stbuf->st_ino, &litm, 0);
if(ret>0) {
sprintf(xorriso->info_text,
"Detected symbolic link loop around : %s",
Text_shellsafe(link_path, sfe, 0));
sprintf(xorriso->info_text, "Detected symbolic link loop around : ");
Text_shellsafe(link_path, xorriso->info_text, 1);
if(!(flag&2))
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", flag&1);
return(0);
@ -700,11 +705,13 @@ int Xorriso_sorted_dir_x(struct XorrisO *xorriso, char *dir_path,
int *filec, char ***filev, off_t boss_mem, int flag)
{
int count= 0, ret;
char name[SfileadrL];
char *name= NULL;
struct DirseQ *dirseq= NULL;
off_t mem;
struct DirentrY *last= NULL, *current= NULL;
Xorriso_alloc_meM(name, char, SfileadrL);
*filec= 0;
*filev= NULL;
mem= boss_mem;
@ -722,22 +729,28 @@ int Xorriso_sorted_dir_x(struct XorrisO *xorriso, char *dir_path,
{ret= 0; goto ex;}
current= (struct DirentrY *) calloc(1, sizeof(struct DirentrY));
if(current==NULL)
if(current==NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex;}
}
current->adr= NULL;
current->next= last;
last= current;
last->adr= strdup(name);
if(last->adr==NULL)
if(last->adr==NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex;}
}
count++;
}
*filec= count;
if(count==0)
{ret= 1; goto ex;}
(*filev)= (char **) calloc(count, sizeof(char *));
if(*filev==NULL)
if(*filev==NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex; }
}
count= 0;
for(current= last; current!=NULL; current= last) {
last= current->next;
@ -752,6 +765,7 @@ ex:;
free(current->adr);
free((char *) current);
}
Xorriso_free_meM(name);
return(ret);
}
@ -765,11 +779,14 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
int filec, char **filev, off_t boss_mem, int flag)
{
int i, ret, was_error= 0, dfilec= 0, pass, passes;
char sfe[5*SfileadrL], sfe2[5*SfileadrL], path[SfileadrL], *acl_text= NULL;
char *rpt, link_target[SfileadrL], **dfilev= NULL;
char *path= NULL, *acl_text= NULL;
char *rpt, *link_target= NULL, **dfilev= NULL;
off_t size;
struct stat stbuf;
Xorriso_alloc_meM(path, char, SfileadrL);
Xorriso_alloc_meM(link_target, char, SfileadrL);
rpt= xorriso->result_line;
Sort_argv(filec, filev, 0);
@ -783,8 +800,8 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
}
ret= lstat(path, &stbuf);
if(ret==-1) {
sprintf(xorriso->info_text, "Not found in local filesystem: %s",
Text_shellsafe(path, sfe, 0));
sprintf(xorriso->info_text, "Not found in local filesystem: ");
Text_shellsafe(path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "WARNING", 1);
was_error++;
continue;
@ -795,7 +812,7 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
sprintf(xorriso->info_text,"Valid local files found: %d\n",filec-was_error);
Xorriso_info(xorriso,1);
if(filec-was_error<=0)
return(!was_error);
{ret= !was_error; goto ex;}
}
passes= 1+!(flag&(4|8));
@ -821,7 +838,8 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
if(filec>1) {
strcpy(xorriso->result_line, "\n");
Xorriso_result(xorriso,0);
sprintf(xorriso->result_line, "%s:\n", Text_shellsafe(filev[i], sfe,0));
Text_shellsafe(filev[i], xorriso->result_line, 0);
strcat(xorriso->result_line, ":\n");
Xorriso_result(xorriso,0);
}
ret= Xorriso_sorted_dir_x(xorriso, path, &dfilec, &dfilev, boss_mem, 0);
@ -862,22 +880,27 @@ int Xorriso_lsx_filev(struct XorrisO *xorriso, char *wd,
ret= Xorriso_show_dux_subs(xorriso, path, filev[i], &size, boss_mem,
NULL, flag&1);
if(ret<0)
return(-1);
{ret= -1; goto ex;}
if(ret==0)
continue;
}
sprintf(rpt, "%7.f ",(double) (size/1024));
}
if(link_target[0])
sprintf(xorriso->result_line+strlen(xorriso->result_line), "%s -> %s\n",
Text_shellsafe(filev[i], sfe, 0),
Text_shellsafe(link_target, sfe2, 0));
else
sprintf(xorriso->result_line+strlen(xorriso->result_line), "%s\n",
Text_shellsafe(filev[i], sfe, 0));
if(link_target[0]) {
Text_shellsafe(filev[i], xorriso->result_line, 1);
strcat(xorriso->result_line, " -> ");
Text_shellsafe(link_target, xorriso->result_line, 1);
} else {
Text_shellsafe(filev[i], xorriso->result_line, 1);
}
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
}
return(!was_error);
ret= !was_error;
ex:;
Xorriso_free_meM(path);
Xorriso_free_meM(link_target);
return(ret);
}
@ -1086,11 +1109,13 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
gid_t group= 0;
time_t date= 0;
mode_t mode_or= 0, mode_and= ~1;
char *target, *text_2, sfe[5*SfileadrL], *disk_prefix, iso_path[SfileadrL];
char *target, *text_2, *wdi_mem= NULL, *disk_prefix, *iso_path= NULL;
char *basename;
struct FindjoB *subjob;
struct stat stbuf;
Xorriso_alloc_meM(iso_path, char, SfileadrL);
action= Findjob_get_action_parms(job, &target, &text_2, &user, &group,
&mode_and, &mode_or, &type, &date, &subjob, 0);
if(action<0)
@ -1116,7 +1141,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
ret= Xorriso_iso_lstat(xorriso, iso_path, &stbuf, 0);
if(ret<0)
{ret= 1; goto ex;}
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
Text_shellsafe(show_path, xorriso->result_line, 0);
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
ret= 1;
} else if(action==16) { /* not_in_iso */
@ -1147,8 +1173,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
{ret= 1; goto ex;}
ret= Xorriso_rmi(xorriso, NULL, (off_t) 0, iso_path, 1|32);
if(ret>0) {
sprintf(xorriso->info_text, "Emptied directory %s",
Text_shellsafe(iso_path, sfe, 0));
sprintf(xorriso->info_text, "Emptied directory ");
Text_shellsafe(iso_path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "UPDATE", 0);
}
} else if(action==20) { /* is_full_in_iso */
@ -1157,14 +1183,19 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
{ret= 1; goto ex;}
if(!S_ISDIR(stbuf.st_mode))
{ret= 1; goto ex;}
strcpy(sfe, xorriso->wdi);
wdi_mem= strdup(xorriso->wdi);
if(wdi_mem == NULL) {
Xorriso_no_malloc_memory(xorriso, NULL, 0);
{ret= -1; goto ex;}
}
strcpy(xorriso->wdi, iso_path);
ret= Xorriso_ls(xorriso, 4|8);
strcpy(xorriso->wdi, sfe);
strcpy(xorriso->wdi, wdi_mem);
if(ret>0) {
sprintf(xorriso->result_line,
"d %s (ISO) : non-empty directory (would not match mount point)\n",
Text_shellsafe(iso_path, sfe, 0));
strcpy(xorriso->result_line, "d ");
Text_shellsafe(iso_path, xorriso->result_line, 1);
strcat(xorriso->result_line,
" (ISO) : non-empty directory (would not match mount point)\n");
Xorriso_result(xorriso,0);
}
{ret= 1; goto ex;}
@ -1179,7 +1210,8 @@ int Xorriso_findx_action(struct XorrisO *xorriso, struct FindjoB *job,
ret= Xorriso_estimate_file_size(xorriso, job, basename, stbuf.st_mode,
stbuf.st_size, 0);
} else {
sprintf(xorriso->result_line, "%s\n", Text_shellsafe(show_path, sfe, 0));
Text_shellsafe(show_path, xorriso->result_line, 0);
strcat(xorriso->result_line, "\n");
Xorriso_result(xorriso, 0);
ret= 1;
}
@ -1187,6 +1219,9 @@ ex:;
if(action==15 || action==16 || action==18 || action==19 || action==20)
if(xorriso->no_volset_present)
xorriso->request_to_abort= 1; /* Need an image. No use to try again. */
if(wdi_mem != NULL)
free(wdi_mem);
Xorriso_free_meM(iso_path);
return(ret);
}
@ -1209,16 +1244,12 @@ int Xorriso_findx(struct XorrisO *xorriso, struct FindjoB *job,
if(xorriso->request_to_abort)
{ret= 0; goto ex;}
sfe= malloc(5*SfileadrL);
name= malloc(SfileadrL);
path= malloc(SfileadrL);
abs_dir_path_data= malloc(SfileadrL);
abs_path= malloc(SfileadrL);
if(name==NULL || sfe==NULL || path==NULL ||
abs_dir_path_data==NULL || abs_path==NULL) {
Xorriso_no_malloc_memory(xorriso, &sfe, 0);
{ret= -1; goto ex;}
}
Xorriso_alloc_meM(sfe, char, 5*SfileadrL);
Xorriso_alloc_meM(name, char, SfileadrL);
Xorriso_alloc_meM(path, char, SfileadrL);
Xorriso_alloc_meM(abs_dir_path_data, char, SfileadrL);
Xorriso_alloc_meM(abs_path, char, SfileadrL);
own_link_stack= link_stack;
abs_dir_path= abs_dir_parm;
if(abs_dir_path[0]==0) {
@ -1338,16 +1369,11 @@ int Xorriso_findx(struct XorrisO *xorriso, struct FindjoB *job,
ret= 1;
ex:;
if(sfe!=NULL)
free(sfe);
if(name!=NULL)
free(name);
if(path!=NULL)
free(path);
if(abs_dir_path_data!=NULL)
free(abs_dir_path_data);
if(abs_path!=NULL)
free(abs_path);
Xorriso_free_meM(sfe);
Xorriso_free_meM(name);
Xorriso_free_meM(path);
Xorriso_free_meM(abs_dir_path_data);
Xorriso_free_meM(abs_path);
Dirseq_destroy(&dirseq, 0);
return(ret);
}
@ -1447,7 +1473,6 @@ ex:;
int Xorriso_reassure_restore(struct XorrisO *xorriso, char *path, int flag)
{
int ret;
char sfe[5*SfileadrL];
while((xorriso->do_reassure==1 || (xorriso->do_reassure==2 && !(flag&4)))
&& !xorriso->request_not_to_ask) {
@ -1467,8 +1492,8 @@ int Xorriso_reassure_restore(struct XorrisO *xorriso, char *path, int flag)
goto ex;
if(xorriso->request_to_abort) {
sprintf(xorriso->info_text,
"Removal operation aborted by user before file: %s",
Text_shellsafe(path, sfe, 0));
"Removal operation aborted by user before file: ");
Text_shellsafe(path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
ret= 3; goto ex;
}
@ -1481,8 +1506,8 @@ int Xorriso_reassure_restore(struct XorrisO *xorriso, char *path, int flag)
break;
}
if(ret==1) { /* no */
sprintf(xorriso->info_text, "Kept in existing state: %s",
Text_shellsafe(path, sfe, 0));
sprintf(xorriso->info_text, "Kept in existing state: ");
Text_shellsafe(path, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "NOTE", 0);
ret= 3; goto ex;
}
@ -1532,59 +1557,67 @@ int Xorriso_make_tmp_path(struct XorrisO *xorriso, char *orig_path,
int Xorriso_auto_chmod(struct XorrisO *xorriso, char *disk_path, int flag)
{
int ret, is_link= 0;
char *path_pt, sfe[5*SfileadrL], link_target[SfileadrL];
char *path_pt, *link_target= NULL;
mode_t mode, desired= S_IRUSR | S_IWUSR | S_IXUSR;
struct stat stbuf;
Xorriso_alloc_meM(link_target, char, SfileadrL);
if(!(xorriso->do_auto_chmod || (flag & 1)))
return(0);
{ret= 0; goto ex;}
if(flag & 2)
desired &= ~S_IWUSR;
path_pt= disk_path;
ret= lstat(path_pt, &stbuf);
if(ret==-1)
return(0);
{ret= 0; goto ex;}
if(S_ISLNK(stbuf.st_mode)) {
is_link= 1;
ret= stat(path_pt, &stbuf);
if(ret==-1)
return(0);
{ret= 0; goto ex;}
}
if(!S_ISDIR(stbuf.st_mode))
return(0);
{ret= 0; goto ex;}
if(is_link) {
ret= Xorriso_resolve_link(xorriso, path_pt, link_target, 0);
if(ret<=0)
return(ret);
goto ex;
path_pt= link_target;
}
if((stbuf.st_mode & desired) == desired)
return(0);
{ret= 0; goto ex;}
if(stbuf.st_uid!=geteuid())
return(-2);
{ret= -2; goto ex;}
mode= (stbuf.st_mode | desired) & 07777;
ret= chmod(path_pt, mode);
if(ret==-1) {
sprintf(xorriso->info_text,
"Cannot change access permissions of disk directory: chmod %o %s",
(unsigned int) (mode & 07777), Text_shellsafe(path_pt, sfe, 0));
"Cannot change access permissions of disk directory: chmod %o ",
(unsigned int) (mode & 07777));
Text_shellsafe(path_pt, xorriso->info_text, 1);
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "SORRY", 0);
return(-2);
{ret= -2; goto ex;}
}
ret= Permstack_push(&(xorriso->perm_stack), path_pt, &stbuf, 0);
if(ret<=0)
return(ret);
return(1);
goto ex;
ret= 1;
ex:;
Xorriso_free_meM(link_target);
return(ret);
}
int Xorriso_make_accessible(struct XorrisO *xorriso, char *disk_path, int flag)
{
int done= 0, ret, just_rx= 2;
char *npt, *apt, path[SfileadrL], *wpt;
char *npt, *apt, *path, *wpt;
Xorriso_alloc_meM(path, char, SfileadrL);
apt= disk_path;
wpt= path;
for(npt= apt; !done; apt= npt + 1) {
@ -1598,11 +1631,14 @@ int Xorriso_make_accessible(struct XorrisO *xorriso, char *disk_path, int flag)
*wpt= 0;
ret= Xorriso_auto_chmod(xorriso, path, just_rx);
if(ret == -1)
return(-1);
{ret= -1; goto ex;}
if(ret == -2)
return(0);
{ret= 0; goto ex;}
}
return(1);
ret= 1;
ex:
Xorriso_free_meM(path);
return(ret);
}
@ -1735,16 +1771,17 @@ int Xorriso_make_mount_cmd(struct XorrisO *xorriso, char *cmd,
char *devadr, char result[SfileadrL], int flag)
{
int ret, reg_file= 0, is_safe= 0, sys_code= 0;
char form[6*SfileadrL], session_text[12], track_text[12], lba_text[12];
char *vars[5][2], sfe[5*SfileadrL], volid_sfe[5*80+1], *cpt, *sysname;
char *form= NULL, session_text[12], track_text[12], lba_text[12];
char *vars[5][2], *sfe= NULL, *volid_sfe= NULL, *cpt, *sysname;
struct stat stbuf;
Xorriso_alloc_meM(form, char, 6 * SfileadrL);
Xorriso_alloc_meM(sfe, char, 5 * SfileadrL);
Xorriso_alloc_meM(volid_sfe, char, 5 * 80 + 1);
if(strlen(cmd) > SfileadrL) {
/*
too_long:;
*/
Xorriso_msgs_submit(xorriso, 0, "Argument much too long", 0, "FAILURE", 0);
return(0);
{ret= 0; goto ex;}
}
ret= stat(devadr, &stbuf);
if(ret != -1)
@ -1769,7 +1806,7 @@ too_long:;
Xorriso_msgs_submit(xorriso, 0,
"-mount*: Cannot determine current system type",
0, "FAILURE", 0);
return(0);
{ret= 0; goto ex;}
} else if(strcmp(sysname, "FreeBSD") == 0 ||
strcmp(sysname, "GNU/kFreeBSD") == 0) {
/* "GNU/kFreeBSD" = Debian kfreebsd */
@ -1780,7 +1817,7 @@ too_long:;
sprintf(xorriso->info_text, "-mount*: Unsupported system type %s",
Text_shellsafe(sysname, sfe, 0));
Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, 0, "FAILURE", 0);
return(0);
{ret= 0; goto ex;}
}
}
@ -1810,7 +1847,7 @@ too_long:;
Xorriso_msgs_submit(xorriso, 0,
"Command mdconfig -a -t vnode -f can create a device node which uses the file",
0, "HINT", 0);
return(0);
{ret= 0; goto ex;}
} else {
sprintf(form,
"%smount_cd9660 -o noexec,nosuid -s %%sbsector%% %%device%% %s",
@ -1837,8 +1874,13 @@ too_long:;
vars[4][1]= Text_shellsafe(devadr, sfe, 0);
ret= Sregex_resolve_var(form, vars, 5, "%", "%", "%", result, SfileadrL, 0);
if(ret <= 0)
return(ret);
return(1 + is_safe);
goto ex;
ret= 1 + is_safe;
ex:;
Xorriso_free_meM(form);
Xorriso_free_meM(sfe);
Xorriso_free_meM(volid_sfe);
return(ret);
}

@ -1 +1 @@
#define Xorriso_timestamP "2011.05.02.121907"
#define Xorriso_timestamP "2011.05.02.191704"

Loading…
Cancel
Save