Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: zsh crash in recent -current



	hello Robert.  Given this code fragment and the discussion you raise
about it, allow me to ask what perhaps is a naive question.  If the sample
you quote is incorrect, what is the correct way to accomplish the same
task?
-thanks
-Brian

On Mar 13,  6:27pm, Robert Elz wrote:
} Subject: Re: zsh crash in recent -current
}     Date:        Wed, 13 Mar 2019 10:06:42 +0000
}     From:        Chavdar Ivanov <ci4ic4%gmail.com@localhost>
}     Message-ID:  <CAG0OUxheb4LzriUoZ_JMoVEZet8BeCcMDEp3pgzryAuusJRhQA%mail.gmail.com@localhost>
} 
}   | I saw the one with the trashed history as well.
}   |
}   | I don't think it is zsh's problem, though. As I mentioned above, I've
}   | used v5.7 since it came out without any problems until perhaps 3-4
}   | days ago.
} 
} I would guess that maybe there is code like this
} 
} 	for (list_ptr = list_head; list_ptr != NULL; list_ptr = list_ptr->nxt) 
} {
} 		/* do stuff on list */
} 		if (element_should_be_deleted) {
} 			/* with testing for NULLs added but not shown here */
} 			list_ptr->prev->nxt = list_ptr->nxt;
} 			list_ptr->nxt->prev = list_ptr->prev;
} 			free(list_ptr);
} 		}
} 	}
} 
} which will "work" perfectly wih most versions of malloc, as
} that free does not change anything in the memory that has been
} freed, but will collapse in a giant heap if free() scribbles
} over the memory as part of deleting things, which some of the
} dumps that various people have shown on this (and similar) issues
} looks to be what is happening (the scribbling - it is deliberate
} to expose bugs like this one).
} 
} Code like the above is easy to write, and most of the time works fine
} (and would have worked with the previous malloc) but will die
} big time when the arena is scrambled (not just zeroed, usually).
} 
} Someone should look for something like this in the areas of zsh
} that are crashing, and other programs.
} 
} This is far more likely than the new malloc being broken, and just
} only happening to hit a few programs, and is more likely than some
} random memory corruption that simply has never been noticed until
} now.
} 
} kre
} 
} 
>-- End of excerpt from Robert Elz




Home | Main Index | Thread Index | Old Index