Re: error

From: Mysidia (jmhess@i-55.com)
Date: 07/15/00


On Fri, 14 Jul 2000, Sharon Stanton wrote:

> Compiling...
> diskio.c
> Linking...
> clan.obj : error LNK2001: unresolved external symbol _popen
> Debug/circle.exe : fatal error LNK1120: 1 unresolved externals
> Error executing link.exe.


     Your problem is that somewhere clan.obj
(probably clan.c in source form) is a call to popen())

   Now popen() forks and spawns an external program to either talk to or
listen to it with a pipe, in *ix; your problem here is that you are
compiling in windows which doesn't have this functionality [at least
not implemented through a function named 'popen'].

   You need to disable the option/whatever in clan.c that calls
popen, this might take some doing depending on how it's being used --
there really isn't any good reason that a mud should ever be forking or
spawning an external program while in normal operation anyways, especially
at the request of the user [which is the only reason I can possibly imagine
it using popen rather than system()]; -- after all, a mud's a server, not a
login shell!

Calling popen() is particularly unsafe, especially if the arguments
to the command being spawned can be controlled in any way by a player or imm
for that matter; in either case, if a player can cause a popen() to happen
on demand, they might be able to bring the system to its needs by
hammering with requests or somethin'.

..blah..blah...<insert other admonishments about using popen in server
                code here directed at whoever did it>
...blah...blah...


            -Mysid


     +------------------------------------------------------------+
     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |
     +------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 04/10/01 PDT