diff --git a/xorriso/aux_objects.c b/xorriso/aux_objects.c index e35404f2..1020ae98 100644 --- a/xorriso/aux_objects.c +++ b/xorriso/aux_objects.c @@ -463,24 +463,31 @@ return: */ { int i,ret; - char reply[SfileadrL]; + char *reply= NULL; + + reply= TSOB_FELD(char, SfileadrL); + if(reply == NULL) + return(-1); *reply_count= 0; for(i=0;itext); if(strncmp(abs_path, s->text, l)==0) if(abs_path[l]=='/' || abs_path[l]==0) - return(1); + {ret= 1; goto ex;} } } else { for(s= o->not_paths; s!=NULL; s= s->next) if(strcmp(abs_path, s->text)==0) - return(1); + {ret= 1; goto ex;} } /* determine leafname */ @@ -794,8 +801,8 @@ int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag) was_non_slash= 1; } if(strlen(leaf_pt)>=SfileadrL) - return(-1); - strcpy(leaf, leaf_pt); + {ret= -1; goto ex;} + leaf= strdup(leaf_pt); leaf_pt= strchr(leaf, '/'); if(leaf_pt!=NULL) *leaf_pt= 0; @@ -804,9 +811,13 @@ int Exclusions_match(struct ExclusionS *o, char *abs_path, int flag) for(s= o->not_leafs; s!=NULL; s= s->next) { ret= regexec((regex_t *) s->text, leaf, 1, match, 0); if(ret==0) - return(2); + {ret= 2; goto ex;} } - return(0); + ret= 0; +ex: + if(leaf != NULL) + free(leaf); + return(ret); } @@ -953,7 +964,6 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, struct XorrisO *xorriso, int flag) { int ret; - char sfe[5*SfileadrL]; struct utimbuf utime_buffer; struct PermiteM *m, *m_next; @@ -974,9 +984,9 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, if(ret==-1) { if(xorriso!=NULL) { sprintf(xorriso->info_text, - "Cannot change access permissions of disk directory: chmod %o %s", - (unsigned int) (m->stbuf.st_mode & 07777), - Text_shellsafe(m->disk_path, sfe, 0)); + "Cannot change access permissions of disk directory: chmod %o ", + (unsigned int) (m->stbuf.st_mode & 07777)); + Text_shellsafe(m->disk_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); } @@ -990,8 +1000,8 @@ int Permstack_pop(struct PermiteM **o, struct PermiteM *stopper, ret= utime(m->disk_path,&utime_buffer); if(ret==-1 && xorriso!=NULL) { sprintf(xorriso->info_text, - "Cannot change timestamps of disk directory: %s", - Text_shellsafe(m->disk_path, sfe, 0)); + "Cannot change timestamps of disk directory: "); + Text_shellsafe(m->disk_path, xorriso->info_text, 1); Xorriso_msgs_submit(xorriso, 0, xorriso->info_text, errno, "FAILURE", 0); } diff --git a/xorriso/xorriso_timestamp.h b/xorriso/xorriso_timestamp.h index 6255173f..308945d5 100644 --- a/xorriso/xorriso_timestamp.h +++ b/xorriso/xorriso_timestamp.h @@ -1 +1 @@ -#define Xorriso_timestamP "2011.04.30.121138" +#define Xorriso_timestamP "2011.05.02.090908"