Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date: Wed, 26 Jun 2013 12:19:34 +0200
From: Szabolcs Nagy <>
Subject: Re: Thinking about release

* Rich Felker <> [2013-06-25 21:44:07 -0400]:
> On Wed, Jun 12, 2013 at 09:25:17PM -0400, Rich Felker wrote:
> > Hi all,
> > 
> > It's been mentioned that we're overdue for a release, and it looks
> > like we have a fair amount of new stuff since the last release. Major
> > changes so far:
> > 
> > - Accepting \n in dynamic linker path file
> This was buggy and apparently nobody (even the person who requested
> it?!) ever tested it. Just fixed it. Could possibly use some further
> review still to make sure it handles odd path files well.

if the path file is empty the fixed (and original) code
invokes ub (it is not critical since an empty path file
does not make much sense, but i think it should be fixed)

	if (!sys_path) {
		FILE *f = fopen(ETC_LDSO_PATH, "rbe");
		if (f) {
// if f is empty then getdelim returns -1, allocates space for sys_path
// but sys_path is not null terminated
			if (getdelim(&sys_path, (size_t[1]){0}, 0, f) > 0) {
				size_t l = strlen(sys_path);
				if (l && sys_path[l-1]=='\n')
					sys_path[l-1] = 0;
// sys_path is non-null and not a valid string here
	if (!sys_path) sys_path = "/lib:/usr/local/lib:/usr/lib";
	fd = path_open(name, sys_path, buf, sizeof buf);

i think either getdelim should be fixed so it
makes sys_path null terminated even on eof/error
or sys_path should be freed and set to 0 in case
of failure so we fall back to the default value

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.