TIP: Click on subject to list as thread! ANSI
echo: nthelp
to: mark.lewis
from: Rich
date: 2002-12-19 09:12:16
subject: Re: OS/400 and shared library hell

From: "Rich" 

This is a multi-part message in MIME format.

------=_NextPart_000_0319_01C2A73E.B9AB56E0
Content-Type: text/plain;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

   You could always do what you described on Linux and others have long =
done on Windows.  Use unique names.  If you really want to use links, =
which I think is a miserable mechanism for versioning, go ahead.  Links =
have been in NTFS since release.

   Windows does keep system files clean and clear from outside upgrades. =
 Have you not been paying attention to the messages here discussing =
system file protection?  Maybe you should actually use Windows before = you
make false statements?

Rich

  "Mark.Lewis"  wrote in message =
news:8099e4.93500f{at}harborwebs.com...
  R> From: "Rich" 

   R> This is a multi-part message in MIME format.

   R> ------=3D_NextPart_000_0272_01C2A6DF.5614B270
   R> Content-Type: text/plain;
   R>         charset=3D"iso-8859-1"
   R> Content-Transfer-Encoding: quoted-printable

  uuuggghhh...

   R>    Windows can have any number of versions.  Always could.

  oh? how can i have different versions of CTL32.DLL in the =
\windows\system
  directory? this is one very common example... there are others but i =
can't
  think of them at the moment...

   R> So can every system with which I'm familiar that supports
   R> shared libraries. It's irrelevant.  The problems occur either
   R> when a shared library producer believes he has provided a
   R> compatible upgrade and wants existing clients =3D to use it or
   R> when a client of a shared library misuses the library and
   R> either intentionally or unintentionally relies on undefined
   R> behavior and there is a change in the undefined behavior.
   R> The latter is very common.

  agreed... but windows doesn't enforce keeping its system dlls clean =
and clear
  from outside "upgrades" or "enhancement"... this new
stuff in XP =
called "system
  file protection" isn't... it is "system file replacement"
as someone =
else
  recently pointed out... and, as Geo pointed out, it doesn't prevent =
anyone from
  putting a bogus file of the same name earlier in the search path... =
and none of
  this enforces making the programers code to look in a specific (set =
of)
  place(s) for dlls they need... we won't even talk about installer =
programs that
  overwrite files without checking versioning information or even things =
that m$
  is also guilty of like not properly updating the versioning =
information or even
  storing that versioning information in a place properly set aside for =
it...

   R>    One of my favorites of the latter is the example of an
   R> application that had an uninitialized stack variable.  It
   R> just so happened that an API called just before the call
   R> to the function with the uninitialized value just so
   R> happened to have the uninitialized location assigned to a
   R> local that would always be set to zero before the API
   R> returned.  This had the side effect of the leaving a
   R> reasonable value in the uninitialized location.  When the
   R> API changed so that its stack layout changed the buggy
   R> application started to fail.

  yes, i've seen this in many coding situations... its one of the =
reasons why i
  like pascal and other similar languages so much... especially when the =
enforce
  the defining of variables and go so far as to warn about them not =
being
  initialized...

  )\/(ark


------=_NextPart_000_0319_01C2A73E.B9AB56E0
Content-Type: text/html;
        charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable








   You could
always do what =
you described=20
on Linux and others have long done on Windows.  Use unique =
names.  If=20
you really want to use links, which I think is a miserable mechanism for =

versioning, go ahead.  Links have been in NTFS since =
release.
 
   Windows
does keep system =
files clean=20
and clear from outside upgrades.  Have you not been paying =
attention to the=20
messages here discussing system file protection?  Maybe you should
= actually=20
use Windows before you make false statements?
 
Rich
 

  "Mark.Lewis" <mlewis{at}wpusa.dynip.com>">mailto:mlewis{at}wpusa.dynip.com">mlewis{at}wpusa.dynip.com>
=
wrote in=20
  message news:8099e4.93500f{at}harborwebs.=
com...R>=20
  From: "Rich"
<{at}> R> This is a
multi-part message =
in MIME=20
  format. R>=20
  ------=3D_NextPart_000_0272_01C2A6DF.5614B270 R> =
Content-Type:=20
  =
text/plain; R>        =
;=20
  charset=3D"iso-8859-1" R>
Content-Transfer-Encoding:=20
  =
quoted-printableuuuggghhh... R>   =
=20
  Windows can have any number of versions.  Always =
could.oh? how=20
  can i have different versions of CTL32.DLL in the=20
  \windows\systemdirectory? this is one very common example... there =
are=20
  others but i can'tthink of them at the =
moment... R> So can=20
  every system with which I'm familiar that supports R> =
shared=20
  libraries. It's irrelevant.  The problems occur =
either R>=20
  when a shared library producer believes he has provided =
a R>=20
  compatible upgrade and wants existing clients =3D to use it =
or R>=20
  when a client of a shared library misuses the library =
and R>=20
  either intentionally or unintentionally relies on =
undefined R>=20
  behavior and there is a change in the undefined =
behavior. R> The=20
  latter is very common.agreed... but windows doesn't enforce =
keeping=20
  its system dlls clean and clearfrom outside "upgrades" or =
"enhancement"...=20
  this new stuff in XP called "systemfile protection"
isn't... it is =
"system=20
  file replacement" as someone elserecently pointed out... and, as =
Geo=20
  pointed out, it doesn't prevent anyone fromputting a bogus file of =
the=20
  same name earlier in the search path... and none ofthis enforces =
making=20
  the programers code to look in a specific (set of)place(s) for =
dlls they=20
  need... we won't even talk about installer programs thatoverwrite =
files=20
  without checking versioning information or even things that m$is =
also=20
  guilty of like not properly updating the versioning information or=20
  evenstoring that versioning information in a place properly set =
aside for=20
 
it... R>   
One of my favorites of the =
latter=20
  is the example of an R> application that had an =
uninitialized=20
  stack variable.  It R> just so
happened that an API =
called=20
  just before the call R> to the function with the =
uninitialized=20
  value just so R> happened to have the uninitialized =
location=20
  assigned to a R> local that would always be set to zero =
before the=20
  API R> returned.  This had the side
effect of the =
leaving=20
  a R> reasonable value in the uninitialized
location.  =
When=20
  the R> API changed so that its stack layout
changed the=20
  buggy R> application started to
fail.yes, i've =
seen this=20
  in many coding situations... its one of the reasons why ilike =
pascal and=20
  other similar languages so much... especially when the enforcethe =
defining=20
  of variables and go so far as to warn about them not=20
  =
beinginitialized...)\/(ark=


------=_NextPart_000_0319_01C2A73E.B9AB56E0--

--- BBBS/NT v4.01 Flag-4
* Origin: Barktopia BBS Site http://HarborWebs.com:8081 (1:379/1.45)
SEEN-BY: 633/267 270
@PATH: 379/1 633/267

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.