# FUP ate my db

ThwartedEfforts (abakun@forney.scinc.com)
Sat, 25 May 1996 21:17:13 PDT

- Messages sorted by:[ date ][ thread ][ subject ][ author ]

    >At 02:40 PM 5/25/96 PDT, dg@dcs.st-and.ac.uk wrote:
    >>I'd just like to point out a `small' bug in FUP... if you try and fileread()
    >>a directory, it just keeps reading, and reading, and reading, and locks the
    >>server up, and eventually runs out of memory and the server panics and dumps
    >>db:

    This might be obvious, but why the hell would someone try to read a directory? :)

    >yeah I know, it also locks up if you try to read/write a file with ; or : in
    >it... you could make a wrapper in $bf_fileread() (and all the other ones
    >too) to check for that.

    The above statement is bogus:

    ;filewrite("temp", "semicolontest", {"this is a line of text;", "this line ends in a colon:"})
    => 1
    [used 6 ticks, 0 seconds.]
    ;fileread("temp", "semicolontest")
    => {"this is a line of text;", "this line ends in a colon:"}
    [used 5 ticks, 0 seconds.]

    And, of course, I checked the FILENAMES also, and it is true, FUP strips certain characters
    from FILENAMES, which makes sense.  It does this so you don't end up with a file that idiots
    will have problems with when trying to manlipulate from the shell.  In UNIX, ; is special,
    and you'd have to escape it.  Thusly, we'd be reading messages like "I wrote out a file with
    FUP with a semicolon in it, and I can't delete it from the UNIX prompt".  Colons are special
    on Macs.  There are a whole bunch of characters that are removed.
    Altho, perhaps it should raise E_INVARG or something.

    >...just did some checks. FUP appears to strip out : and ; most of the time.
    >Sometimes I get Invalid Indirection (FUP says Error 0). What does this mean,
    >anyway?

    Most of the time?  It strips the special chars all the time for me when the special
    characters appear in the FILENAMES.  I can not reproduce this.  I can not get FUP to
    raise E_INVIND.

    Andy.