Bug fix: xorriso -update_r could lead to SIGSEGV if applied to a data file

This commit is contained in:
Thomas Schmitt 2010-02-19 17:19:41 +00:00
parent 4374d984d1
commit f4507fca34
2 changed files with 6 additions and 3 deletions

View File

@ -1 +1 @@
#define Xorriso_timestamP "2010.02.18.125019"
#define Xorriso_timestamP "2010.02.19.172125"

View File

@ -8176,15 +8176,18 @@ int Xorriso_findi(struct XorrisO *xorriso, struct FindjoB *job,
if(job->prune)
no_dive= 1;
if(ret>0) {
iso_node_ref(iso_node); /* protect from real disposal */
ret= Xorriso_findi_action(xorriso, job,
(IsoDirIter *) boss_iter, boss_mem,
path, dir_path, (IsoNode *) dir_node, depth,
path, dir_path, iso_node, depth,
flag&(1|2));
deleted= (iso_node_get_parent(iso_node) == NULL); /* still in tree ? */
iso_node_unref(iso_node); /* eventually do real disposal */
if(ret<=0)
goto ex;
if(xorriso->request_to_abort)
{ret= 0; goto ex;}
if(ret==2) {
if(ret==2 || deleted) {
/* re-determine dir_node in case it has a new persona */
ret= Xorriso_node_from_path(xorriso, volume, path, &iso_node, 1);
if(ret==0) {