Bugtraq mailing list archives

Re: [linux-security] KSR[T] Advisory #2: ld.so


From: jlewis () INORGANIC5 FDT NET (Jon Lewis)
Date: Fri, 18 Jul 1997 12:22:50 -0400


On Thu, 17 Jul 1997, KSR[T] wrote:

[mod: Caldera, LST, Red Hat, Suse, yggdrasil, Debian, unifix, wgs? and
delix? are stressing to make a patch available in their native format.
If your vendor is not on this list, please tell me in private mail. --
R.E.Wolff () BitWizard nl]


Was this patch at all tested?  It failed to compile for me due to what
seems to be a typo in this section:

@@ -207,12 +247,14 @@
        save_mapinfo(mapinfo);
 #endif
        argv0 = va_arg(ap, char *);
+       argv0 = arg_remap(argv0);
        __environ = va_arg(ap, char **);
        __SHARED_LIBRARIES__ = va_arg(ap, struct libentry **);
        _SHARABLE_CONFLICTS__ = va_arg(ap, struct fixuplist *);
        if (func == FUNC_LINK_AND_CALLBACK)
          callback = va_arg(ap, callbackptr);
        va_end(ap);
+
        break;
     default:
        /* you want me to do what? */

s/arg_remap/argv_remap/

@@ -328,6 +371,11 @@
              .text section. This is passed to ldpreload() below */
          if (preload || callback)
          {
+             if(nlibs==11)
+             {
+                     fdprintf(2, "%s: too many preloads\n",argv[0]);
+                     exit(EXIT_FATAL);
+             }
              libs[nlibs] = alloca(strlen(buffer)+1);
              strcpy(libs[nlibs], buffer);
              nlibs++;

This section bothered me too.  I just woke up, and have not taken too
close a look at the code, but libs is declared as char *libs[10];.  Would
it be better to define a constant MAX_LIBS?  Shouldn't the comparison
above be if(nlibs==10) since 0-9 are the valid indexes?

------------------------------------------------------------------
 Jon Lewis <jlewis () fdt net>  |  Unsolicited commercial e-mail will
 Network Administrator       |  be proof-read for $199/message.
 Florida Digital Turnpike    |
________Finger jlewis () inorganic5 fdt net for PGP public key_______



Current thread: