[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Axiom-developer] 20170501
From: |
Camm Maguire |
Subject: |
Re: [Axiom-developer] 20170501 |
Date: |
Tue, 05 Sep 2017 11:45:54 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) |
Hi Tim! I think your socket bind code needs modifying along these lines
(apply these sequentially, see also man 7 unix). The
server[1].addr.u_addr.sa_data array is 14 bytes long and the strcpy can
(and does) overflow, triggering a failure when built with stack
checking.
Take care,
--- axiom-20170501.orig/books/bookvol8.pamphlet
+++ axiom-20170501/books/bookvol8.pamphlet
@@ -27066,12 +27066,11 @@ open_server(char *server_name)
server[1].socket = 0;
return -2;
} else {
- server[1].addr.u_addr.sa_family = AF_UNIX;
- memset(server[1].addr.u_addr.sa_data, 0,
- sizeof(server[1].addr.u_addr.sa_data));
- strcpy(server[1].addr.u_addr.sa_data, name);
- if (bind(server[1].socket, &server[1].addr.u_addr,
- sizeof(server[1].addr.u_addr))) {
+ struct sockaddr_un nn;
+ memset(&nn, 0, sizeof(nn));
+ nn.sun_family = AF_UNIX;
+ strncpy(name.sun_path, name, sizeof(name.sun_path) - 1);
+ if (bind(server[1].socket,(const struct sockaddr *) &nn,sizeof(nn))) {
perror("binding UNIX server socket");
server[1].socket = 0;
return -2;
--- axiom-20170501.orig/books/bookvol8.pamphlet
+++ axiom-20170501/books/bookvol8.pamphlet
@@ -27024,6 +27024,8 @@ make_server_name(char *name,char * base)
/* client Spad server sockets. Two sockets are created: server[0]
is the internet server socket, and server[1] is a UNIX domain socket. */
+#include <sys/un.h>
+
int
open_server(char *server_name)
{
@@ -27069,7 +27071,7 @@ open_server(char *server_name)
struct sockaddr_un nn;
memset(&nn, 0, sizeof(nn));
nn.sun_family = AF_UNIX;
- strncpy(name.sun_path, name, sizeof(name.sun_path) - 1);
+ strncpy(nn.sun_path, name, sizeof(nn.sun_path) - 1);
if (bind(server[1].socket,(const struct sockaddr *) &nn,sizeof(nn))) {
perror("binding UNIX server socket");
server[1].socket = 0;
Tim Daly <address@hidden> writes:
> re: cleanups.
>
> I will look into the library links. Odds are good I'm just using a generic
> list
> of X11 libraries for every link command.
>
> On Fri, Sep 1, 2017 at 11:47 AM, Camm Maguire <address@hidden> wrote:
>
> Greetings! Just FYI for possible cleanups at some point:
>
> dpkg-shlibdeps: warning: package could avoid a useless dependency if
> debian/axiom-hypertex/usr/lib/axiom-20170501/bin/hypertex was not linked
> against libm.so.6 (it uses none of the library's symbols)
> dpkg-shlibdeps: warning: package could avoid a useless dependency if
> debian/axiom/usr/lib/axiom-20170501/lib/spadbuf debian/axiom/usr/lib/
> axiom-20170501/lib/ex2ht were not linked against libXpm.so.4 (they use
> none of the library's symbols)
>
> Take care,
>
> Tim Daly <address@hidden> writes:
>
> > Camm,
> >
> > I applied your changes, tested it, and pushed it.
> >
> > Tim
> >
> > On Wed, Aug 23, 2017 at 9:24 PM, Tim Daly <address@hidden> wrote:
> >
> > Camm,
> >
> > I've applied all of the above patches and am rebuilding now.
> > I'll let you know if anything fails. Thanks for the patches.
> >
> > re: list_order, etc...
> > I have a meeting at CMU on friday with some profs to talk about the
> > state of my research on proving Axiom correct so I'm going to be
> > busy prepping for that.
> >
> > Tim
> >
> > On Wed, Aug 23, 2017 at 3:18 PM, Camm Maguire <address@hidden>
> wrote:
> >
> > Greetings!
> >
> > Tim Daly <address@hidden> writes:
> >
> > > Camm,
> > >
> > > So far I've discoverd that chdir is no longer exported from
> system and
> > > that pathname-* no longer accepts a symbol.
> > >
> >
> > Correct.
> >
> > > These changes are painful to find. You are clearly on the
> path to making
> > > GCL into CLTL2. Do you have a list of these semantic changes
> somewhere?
> > >
> >
> > Actually I do not think this was even valid ClTL1. GCL does
> intend to
> > support both dialects. But with the next release the default
> will be
> > ansi. One can get CLTL1 with --disable-ansi passed to
> configure.
> >
> > Here are my patches addressing these issues. Pretty small issue:
> >
> >
> #############################################################################
> > Description: <short summary of the patch>
> > TODO: Put a short summary on the line above and replace this
> paragraph
> > with a longer explanation of this change. Complete the
> meta-information
> > with other relevant fields (see below for details). To make it
> easier, the
> > information below has been extracted from the changelog.
> Adjust it or drop
> > it.
> > .
> > axiom (20140801-12) unstable; urgency=medium
> > .
> > * build dep against latest gcl
> > * Bug fix: "FTBFS on arm64, mips64el and mipsel", thanks to
> Emilio
> > Pozuelo Monfort (Closes: #840639).
> > Author: Camm Maguire <address@hidden>
> > Bug-Debian: https://bugs.debian.org/840639
> >
> > ---
> > The information above should follow the Patch Tagging
> Guidelines, please
> > checkout http://dep.debian.net/deps/dep3/ to learn about the
> format. Here
> > are templates for supplementary fields that you might want to
> add:
> >
> > Origin: <vendor|upstream|other>, <url of original patch>
> > Bug: <url in upstream bugtracker>
> > Bug-Debian: https://bugs.debian.org/<bugnumber>
> > Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
> > Forwarded: <no|not-needed|url proving that it has been
> forwarded>
> > Reviewed-By: <name and email of someone who approved the patch>
> > Last-Update: 2016-10-13
> >
> > Index: axiom-20170401/books/bookvol5.pamphlet
> >
> ===================================================================
> > --- axiom-20170401.orig/books/bookvol5.pamphlet
> > +++ axiom-20170401/books/bookvol5.pamphlet
> > @@ -47588,9 +47588,9 @@ nrlib/index.kaf
> > (processDir (dirarg thisdir)
> > (let (allfiles)
> > (declare (special vmlisp::*index-filename*))
> > - (system:chdir (string dirarg))
> > + (system::chdir (string dirarg))
> > (setq allfiles (directory "*"))
> > - (system:chdir thisdir)
> > + (system::chdir thisdir)
> > (mapcan #'(lambda (f)
> > (when (string-equal (pathname-type f) "nrlib")
> > (list (concatenate 'string (namestring f) "/"
> > Index: axiom-20170401/src/interp/patches.lisp.pamphlet
> >
> ===================================================================
> > --- axiom-20170401.orig/src/interp/patches.lisp.pamphlet
> > +++ axiom-20170401/src/interp/patches.lisp.pamphlet
> > @@ -123,7 +123,7 @@ It used to read:
> > ((eql (|directoryp| (interp-make-directory (car
> args))) 1)
> > (setq $current-directory
> > (namestring (truename (interp-make-directory (car
> args)))))))
> > -#+(or :kcl :ibcl :CCL) (system:CHDIR $current-directory)
> > +#+(or :kcl :ibcl :CCL) (system::CHDIR $current-directory)
> > #+(and :lucid :ibm/370)
> > (setq *default-pathname-defaults* "")
> > #-(and :lucid :ibm/370)
> > @@ -143,7 +143,7 @@ It used to read:
> > ((eql (|directoryp| (interp-make-directory (car args))) 1)
> > (setq $current-directory
> > (namestring (truename (interp-make-directory (car
> args)))))))
> > -#+(or :kcl :ibcl :CCL) (system:CHDIR $current-directory)
> > +#+(or :kcl :ibcl :CCL) (system::CHDIR $current-directory)
> > #+(and :lucid :ibm/370)
> > (setq *default-pathname-defaults* "")
> > #-(and :lucid :ibm/370)
> >
> =============================================================================
> > Description: <short summary of the patch>
> > TODO: Put a short summary on the line above and replace this
> paragraph
> > with a longer explanation of this change. Complete the
> meta-information
> > with other relevant fields (see below for details). To make it
> easier, the
> > information below has been extracted from the changelog.
> Adjust it or drop
> > it.
> > .
> > axiom (20140801-11) unstable; urgency=medium
> > .
> > * fix FTBFS ppc64, patch to avoid overflow of BSD sockaddr
> sa_data in
> > make_server_name
> > * build-dep latest gcl
> > * Bug fix: "FTBFS on mips", thanks to Sebastian Ramacher
> (Closes:
> > #756793). autobuild with latest tools on mips works.
> > * Bug fix: "naive methods of exiting axiom can blow up
> > catastrophically", thanks to Tom Hargreaves (Closes:
> #346552).
> > * Bug fix: ""backspace" key doesn't work as
> expected",
> > thanks to Edi Meier (Closes: #708733). Command line
> editing in
> > terminal now has a conventionally functioning Backspace
> > Author: Camm Maguire <address@hidden>
> > Bug-Debian: https://bugs.debian.org/346552
> > Bug-Debian: https://bugs.debian.org/708733
> > Bug-Debian: https://bugs.debian.org/756793
> >
> > ---
> > The information above should follow the Patch Tagging
> Guidelines, please
> > checkout http://dep.debian.net/deps/dep3/ to learn about the
> format. Here
> > are templates for supplementary fields that you might want to
> add:
> >
> > Origin: <vendor|upstream|other>, <url of original patch>
> > Bug: <url in upstream bugtracker>
> > Bug-Debian: https://bugs.debian.org/<bugnumber>
> > Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
> > Forwarded: <no|not-needed|url proving that it has been
> forwarded>
> > Reviewed-By: <name and email of someone who approved the patch>
> > Last-Update: 2016-10-13
> >
> > Index: axiom-20170401/books/bookvol5.pamphlet
> >
> ===================================================================
> > --- axiom-20170401.orig/books/bookvol5.pamphlet
> > +++ axiom-20170401/books/bookvol5.pamphlet
> > @@ -37537,7 +37537,7 @@ o )history
> > (cond
> > ((eq fullopt '|ifthere|) (setq ifthere t))
> > ((eq fullopt '|quiet|) (setq quiet t))))
> > - (setq ef (|pathname| /editfile))
> > + (setq ef (or (|pathname| /editfile) ""))
> > (when (eq (|pathnameTypeId| ef) 'spad)
> > (setq ef (|makePathname| (|pathnameName| ef) "*" "*")))
> > (if arg
> > @@ -47605,8 +47605,9 @@ nrlib/index.kaf
> > (if make-database? (setq noexpose t))
> > (when dir (setq nrlibs (processDir dir thisdir)))
> > (dolist (file filelist)
> > - (let ((filename (pathname-name file))
> > - (namedir (directory-namestring file)))
> > + (let* ((file (string file))
> > + (filename (pathname-name file))
> > + (namedir (directory-namestring file)))
> > (unless namedir (setq thisdir (concatenate 'string thisdir
> "/")))
> > (cond
> > ((setq file (probe-file
> > @@ -48838,7 +48839,7 @@ filetype and filemode. We also UPCASE ev
> > (defun |pathname| (p)
> > (cond
> > ((null p) p)
> > - ((pathnamep p) p)
> > + ((pathnamep p) p)((symbolp p) (pathname (string p)))
> > ((null (consp p)) (pathname p))
> > (t
> > (when (> (|#| p) 2) (setq p (cons (elt p 0) (cons (elt p 1)
> nil))))
> > Index: axiom-20170401/src/interp/patches.lisp.pamphlet
> >
> ===================================================================
> > --- axiom-20170401.orig/src/interp/patches.lisp.pamphlet
> > +++ axiom-20170401/src/interp/patches.lisp.pamphlet
> > @@ -100,9 +100,9 @@ previous definition.
> > (cond ((null filename)
> > (dribble) (TERPRI)
> > (reset-highlight))
> > - ((probe-file (car filename))
> > + ((probe-file (string (car filename)))
> > (error (format nil "file ~a already exists" (car
> filename))))
> > - (t (dribble (car filename))
> > + (t (dribble (string (car filename)))
> > (TERPRI)
> > (clear-highlight))
> > ))
> > Index: axiom-20170401/src/interp/util.lisp.pamphlet
> >
> ===================================================================
> > --- axiom-20170401.orig/src/interp/util.lisp.pamphlet
> > +++ axiom-20170401/src/interp/util.lisp.pamphlet
> > @@ -1145,7 +1145,7 @@ Run the etags command on all of the lisp
> > final TAGS file is constructed in the {\bf tmp} directory.
> > \begin{chunk}{make-tags-file}
> > (defun make-tags-file ()
> > -#+:gcl (system:chdir "/tmp")
> > +#+:gcl (system::chdir "/tmp")
> > #-:gcl (vmlisp::obey (concatenate 'string "cd " "/tmp"))
> > (obey (concat "etags " (make-absolute-filename
> "../../src/interp/*.lisp")))
> > (spadtags-from-directory "../../src/interp" "boot")
> >
> #############################################################################
> >
> > Take care,
> >
> > > Tim
> > >
> > > On Thu, Jul 20, 2017 at 7:14 PM, Tim Daly <address@hidden>
> wrote:
> > >
> > > Never mind. I might have figured it out. I'll let you
> know.
> > >
> > > On Thu, Jul 20, 2017 at 6:30 PM, Tim Daly
> <address@hidden> wrote:
> > >
> > > Camm, Barry,
> > >
> > > Yeah, I know. But it wasnt' needed before.
> > > I've fixed that. Now the problem is:
> > >
> > > >;; Loading
> "/home/daly/axiom/obj/ubuntu/interp/makedep.lisp"
> > > ;; Loading
> "/home/daly/axiom/obj/ubuntu/interp/sys-pkg.lsp"
> > > ;; Finished loading
> "/home/daly/axiom/obj/ubuntu/interp/sys-pkg.lsp"
> > > ;; Loading
> "/home/daly/axiom/src/interp/interp-proclaims.lisp"
> > > ;; Finished loading
> "/home/daly/axiom/src/interp/interp-proclaims.lisp"
> > > ;; Loading
> "/home/daly/axiom/obj/ubuntu/interp/nocompil"
> > > ;; Finished loading
> "/home/daly/axiom/obj/ubuntu/interp/nocompil"
> > > ;; Loading
> "/home/daly/axiom/obj/ubuntu/interp/bookvol5"
> > >
> > > Error: ERROR "Cannot find the external symbol CHDIR
> in #<\"SYSTEM\" package>."
> > > Fast links are on: do (si::use-fast-links nil) for
> debugging
> > > Signalled by LOAD.
> > > ERROR "Cannot find the external symbol CHDIR in
> #<\"SYSTEM\" package>."
> > >
> > > Broken at LOAD. Type :H for Help.
> > > 1 Return to top level.
> > > BOOT>>Makefile:174: recipe for target
> '/home/daly/axiom/obj/ubuntu/bin/depsys' failed
> > > make[3]: *** [/home/daly/axiom/obj/ubuntu/bin/depsys]
> Error 255
> > > rm /home/daly/axiom/int/interp/nocompil.lisp
> /home/daly/axiom/int/interp/sys-pkg.lisp /home/daly/axiom/int/interp/util.lisp
> /home
> > /daly/axiom/int/interp/parsing.lisp
> > > make[3]: Leaving directory
> '/home/daly/axiom/src/interp'
> > > Makefile:80: recipe for target 'interpdir' failed
> > > make[2]: *** [interpdir] Error 2
> > > make[2]: Leaving directory '/home/daly/axiom/src'
> > > Makefile.ubuntu:164: recipe for target 'srcdir' failed
> > > make[1]: *** [srcdir] Error 2
> > > make[1]: Leaving directory '/home/daly/axiom'
> > > Makefile:140: recipe for target 'all' failed
> > > make: *** [all] Error 2
> > >
> > > When I build gcl with Axiom and run bin/gcl
> > >
> > > (find-all-symbols 'chdir) ==> (system::chdir chdir)
> > >
> > > but when I do the build the above failure occurs. Yet
> > >
> > > every call to chdir uses the fully qualified
> system::chdir
> > >
> > > suggestions?
> > >
> > > On Wed, Jul 19, 2017 at 5:28 PM, Barry M Trager
> <address@hidden> wrote:
> > >
> > > Tim, I think bsdSignal comes from your
> bsdsignal.c so don't you need to include bcdsignal.o when trying to link in
> sockio-c.o
> > ?
> > >
> > > Barry
> > >
> > > From: Tim Daly <address@hidden>
> > > To: Camm Maguire <address@hidden>
> > > Cc: Barry M Trager <address@hidden>, Tim
> Daly <address@hidden>
> > > Date: 07/19/2017 03:09 PM
> > > Subject: Re: [Axiom] Build failures
> > >
> -----------------------------------------------------------------------------------------------------------------------
> > ----------------
> > >
> > > I have integrated the list_order branch into the
> Axiom build. Without
> > > change, the list_order GCL will build on Ubuntu
> 16.10
> > >
> > > Axiom requires two addtional files, sockio and
> cfuns to be part of the
> > > lisp image. This step fails, missing bsdSignal:
> > >
> > > ar: creating libpre_gcl.a
> > > cp ../o/gcllib.a libgclp.a
> > > ranlib libgclp.a
> > > cat sys_init.lsp.in| sed \
> > > -e "address@hidden@#(`cat
> ../majvers`.`cat ../minvers`) `cat ../release`#1" \
> > > -e "address@hidden@#`cat
> ../minvers | cut -f2 -d.`#1" \
> > > -e "address@hidden@#`cat
> ../minvers | cut -f1 -d.`#1" \
> > > -e "address@hidden@#`cat
> ../majvers`#1" \
> > > -e "address@hidden@#`cat
> ../release`#1" \
> > > -e "address@hidden@#\"gcc -c
> -fsigned-char -pipe -fno-builtin-malloc -fno-builtin-free -fno-PIE -fno-pie
> -fno-PIC
> > -fno-pic
> > > -Wall -Wno-empty-body
> -Wno-unused-but-set-variable \"#1" \
> > > -e "address@hidden@#\"gcc
> -Wl,-z,lazy -Wl,-T,../unixport/gcl.script -o \"#1" \
> > > -e "address@hidden@#\" -l -lm
> -lc -lgclp\"#1" \
> > > -e "address@hidden@#\"-O3
> -fomit-frame-pointer\"#1" \
> > > -e "address@hidden@#\"-O\"#1" \
> > > -e
> "address@hidden@#\"sys_init.lsp\"#1" >sys_init.lsp
> > > touch raw_pre_gcl_map
> > > gcc -Wl,-z,lazy -Wl,-T,../unixport/gcl.script -o
> raw_pre_gcl /home/daly/axiom/obj/ubuntu/lib/cfuns-c.o /home/daly/axiom
> /obj/
> > ubuntu/lib/
> > > sockio-c.o -L. -Wl,-Map raw_pre_gcl_map
> -lpre_gcl -lm -lc -lgclp
> > > /home/daly/axiom/obj/ubuntu/lib/sockio-c.o: In
> function `open_server':
> > > sockio-c.c:(.text+0x1c73): undefined reference to
> `bsdSignal'
> > > collect2: error: ld returned 1 exit status
> > > makefile:137: recipe for target 'raw_pre_gcl_map'
> failed
> > > make[4]: *** [raw_pre_gcl_map] Error 1
> > > make[4]: Leaving directory
> '/home/daly/axiom/lsp/gcl-2.6.13pre/unixport'
> > > makefile:74: recipe for target
> 'unixport/saved_pre_gcl' failed
> > > make[3]: *** [unixport/saved_pre_gcl] Error 2
> > > rm h/mcompdefs.h
> > > make[3]: Leaving directory
> '/home/daly/axiom/lsp/gcl-2.6.13pre'
> > > /bin/sh: 6: unixport/saved_gcl: not found
> > > Makefile:8: recipe for target 'gcldir' failed
> > > make[2]: *** [gcldir] Error 127
> > > make[2]: Leaving directory '/home/daly/axiom/lsp'
> > > Makefile.ubuntu:181: recipe for target 'lspdir'
> failed
> > > make[1]: *** [lspdir] Error 2
> > > make[1]: Leaving directory '/home/daly/axiom'
> > > Makefile:140: recipe for target 'all' failed
> > > make: *** [all] Error 2
> > >
> > > On Mon, Jul 17, 2017 at 10:26 PM, Tim Daly
> <address@hidden> wrote:
> > > Thanks. I'm cloning it now. I'll let you know how
> it goes.
> > >
> > > Axiom would not exist without your help.
> > > I can't tell you how much I appreciate it.
> > > Debugging a C compiler problem is painful.
> > >
> > > Tim
> > >
> > > On Mon, Jul 17, 2017 at 4:47 PM, Camm Maguire
> <address@hidden> wrote:
> > > Hi Tim! I take it you are using 2.6.13pre? If
> so, please advance to
> > > the list_order branch, which I will be pushing to
> 2.6.13pre soon. I
> > > have a configure script which tests for and adds
> -fno_pie as needed.
> > >
> > > Take care,
> > >
> > > Tim Daly <address@hidden> writes:
> > >
> > > > No. I have spent the last two days trying to
> get that to work.
> > > > Apparently it also affects the shipped
> libraries so the linker is
> > > > unhappy. I also tried using update-alternatives
> to install back-level
> > > > gcc versions but they also will not build.
> > > >
> > > > One option is to rebuild the
> compiler/linker/library chain without PIE
> > > > but then I have a much larger maintenance task.
> > > >
> > > > Unfortunately this is viral. GCC 6.2 will
> eventually be on all shipped
> > > > systems in the future so Axiom will only be
> able to be built as long
> > > > as I maintain old build servers. Once my
> binaries from old build
> > > > servers stop working on new systems the whole
> project will suffer.
> > > >
> > > > I will try to use clang in the next few days.
> > > >
> > > > On Mon, Jul 17, 2017 at 2:41 PM, Barry M Trager
> <address@hidden> wrote:
> > > >
> > > > Tim, now that you've found the problem,
> can't you just add the -no-pie compiler flag to fix it?
> > > > Barry
> > > >
> > > >
> > > >
> > > > ----- Original message -----
> > > > From: Tim Daly <address@hidden>
> > > > To: Camm Maguire <address@hidden>,
> Barry M Trager <address@hidden>, Tim Daly <
> address@hidden>
> > > > Cc:
> > > > Subject: [Axiom] Build failures
> > > > Date: Mon, Jul 17, 2017 2:21 PM
> > > >
> > > > I have been unable to build Axiom on
> Ubuntu on any system from
> > > > 16.10 onward. The lisp build fails.
> > > >
> > > > I finally tracked down the problem.
> Some bright-spot thought it would
> > > > be a great idea to enable PIE by
> default.
> > > > https://wiki.ubuntu.com/SecurityTeam/PIE
> > > >
> > > > So essentially I cannot compile Axiom
> on any system with
> > > > GCC 6.2.0 or above.
> > > >
> > > > This is misguided on two levels. A
> language compiler has no business
> > > > trying to enforce security-related
> protocols. And the whole idea
> > > > of address space layout randomization
> is a subset of the SELINUX
> > > > (an NSA/SAIC hack) attempt to simulate
> a harvard architecture
> > > > machine on a princeton architecture
> machine, which is failure by design.
> > > >
> > > > I may have to change compilers.
> > > >
> > > > Tim
> > > >
> > > >
> > > >
> > > >
> > >
> > > --
> > > Camm Maguire
> address@hidden
> > >
> ==========================================================================
> > > "The earth is but one country, and mankind its
> citizens." -- Baha'u'llah
> > >
> >
> > --
> > Camm Maguire
> address@hidden
> >
> ==========================================================================
> > "The earth is but one country, and mankind its citizens." --
> Baha'u'llah
> >
>
> --
> Camm Maguire address@hidden
> ==========================================================================
> "The earth is but one country, and mankind its citizens." -- Baha'u'llah
>
>
> _______________________________________________
> Axiom-developer mailing list
> address@hidden
> https://lists.nongnu.org/mailman/listinfo/axiom-developer
--
Camm Maguire address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens." -- Baha'u'llah