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

Re: [NP] gftp 2.0.14



Am Montag, 3. Februar 2003 13:13 schrieb Alf Schlichting:
> Am Sonntag, 2. Februar 2003 17:37 schrieb COUDERC Damien:
> > == New Port Submit ===================================================
snip---
> Hi!
> While trying to build the new gftp
> (http://www.sigmasoft.com/~openbsd/archive/openbsd-ports/200302/msg00007.ht
>ml ) i got the following error from systrace:
>
> $ systrace -Ui make
> .....build......
> r.lo gtkvscale.lo gtkvscrollbar.lo gtkvseparator.lo gtkwidget.lo
> gtkwindow.lo gtkwindow-decorate.lo fnmatch.lo gtkplug.lo gtksocket.lo 
> -liconv -lintl -liconv
> rm -fr .libs/libgtk-x11-2.0.la .libs/libgtk-x11-2.0.*
> .libs/libgtk-x11-2.0.* generating symbol list for `libgtk-x11-2.0.la'
> systrace: intercept_filename: filename too long
> Killed
> $
>
> This happens when gtk+2-2.0.9 is built as a dependency.
>
> regards,
> Alf
>
Hi,

I think i tracked it down a little more:
i hacked up systrace to be a little more verbose.
This is the part thats throwing the error:

/usr/src/bin/systrace/intercept.c:

....
char *
intercept_filename(int fd, pid_t pid, void *addr, int userp)
{
....
	if (havecwd && name[0] != '/') {
		if (strlcat(cwd, "/", sizeof(cwd)) >= sizeof(cwd))
			goto error;
		if (strlcat(cwd, name, sizeof(cwd)) >= sizeof(cwd))
			goto error;
	} else {
		/* Have a look at cwd and its size before: */	
		fprintf(stderr, "%s, size: %d\n", cwd, strlen(cwd));
		if (strlcpy(cwd, name, sizeof(cwd)) >= sizeof(cwd))
			{
			/* and after */
			fprintf(stderr, "after err: %s, size: %d\n", cwd, strlen(cwd));
			goto error;
			}
	}

....

and this is what is printed to stderr:

.... 
's/, size: 3
after err: /usr/bin/nm -B  gtkaccelgroup.lo gtkaccelmap.lo gtkaccellabel.lo 
gtkaccessible.lo gtkadjustment.lo gtkalignment.lo gtkarrow.lo 
gtkaspectframe.lo gtkbin.lo gtkbindings.lo gtkbbox.lo gtkbox.lo gtkbutton.lo 
gtkcalendar.lo gtkcellrenderer.lo gtkcelleditable.lo gtkcellrenderertext.lo 
gtkcellrenderertoggle.lo gtkcellrendererpixbuf.lo gtkcheckbutton.lo 
gtkcheckmenuitem.lo gtkseparatormenuitem.lo gtkclipboard.lo gtkclist.lo 
gtkcolorsel.lo gtkcolorseldialog.lo gtkcombo.lo gtkcontainer.lo gtkctree.lo 
gtkcurve.lo gtkdialog.lo gtkdnd.lo gtkdrawingarea.lo gtkeditable.lo 
gtkentry.lo gtkeventbox.lo gtkfilesel.lo gtkfixed.lo gtkfontsel.lo 
gtkframe.lo gtkgamma.lo gtkgc.lo gtkhandlebox.lo gtkhbbox.lo gtkhbox.lo 
gtkhpaned.lo gtkhruler.lo gtkhscale.lo gtkhscrollbar.lo gtkhseparator.lo 
gtkhsv.lo gtkiconfactory.lo gtkimage.lo gtkimagemenuitem.lo gtkimcontext.lo 
gtkimcontextsimple.lo gtkimmodule.lo gtkimmulticontext.lo gtkinputdialog.lo 
gtkinvisible.lo gtkitem.lo gtkitemfactory.lo gtkkeyhash.lo gtklabel.lo 
gtklayout.lo gtklist.lo gtklistitem.lo gtkliststore.lo gtkmain.lo 
gtkmarshalers.lo gtkmarshal.lo gtkmenu.lo gtkmenubar.lo gtkmenuitem.lo 
gtkmenushell.lo gtkmessagedialog.lo gtkmisc.lo gtknotebook.lo gtkobject.lo 
gtkoldeditable.lo gtkoptionmenu.lo gtkpaned.lo gtkpixmap.lo gtkpreview.lo 
gtkprogress.lo gtkprogressbar.lo gtkradiobutton.lo gtkradiomenuitem.lo 
gtkrange.lo gtkrbtree.lo gtkrc.lo gtkruler.lo gtkscale.lo gtkscrollbar.lo 
gtkscrolledwindow.lo gtkselection.lo gtkseparator.lo gtksettings.lo 
gtksignal.lo gtksizegroup.lo gtkspinbutton.lo gtkstock.lo gtkstyle.lo 
gtkstatusbar.lo gtktable.lo gtktearoffmenuitem.lo gtktext.lo gtktextbtree.lo 
gtktextbuffer.lo gtktextchild.lo gtktextdisplay.lo gtktextiter.lo 
gtktextlayout.lo gtktextmark.lo gtktextsegment.lo gtktexttag.lo 
gtktexttagtable.lo gtktexttypes.lo gtktextutil.lo gtktextview.lo gtkthemes.lo 
gtktipsquery.lo gtktogglebutton.lo gtktoolbar.lo gtktooltips.lo gtktree.lo 
gtktreeitem.lo gtktreedatalist.lo gtktreednd.lo gtktreemodel.lo 
gtktreemodelsort.lo gtktreeselection.lo gtktreesortable, size: 2047
.....

So actually strlcpy fails because cwd can only contain 2*MAXPATHLEN.


regards,
Alf