[Python-Dev] another dict crasher

Michael Hudson mwh@python.net
01 Jun 2001 19:52:17 +0100

Warning!  VERY SICK CODE INDEED ahead!

barry@digicool.com (Barry A. Warsaw) writes:

> >>>>> "MH" == Michael Hudson <mwh@python.net> writes:
>     MH> segfaults both 2.1 and current (well, maybe a day old) CVS.
>     MH> Haven't tried Tim's latest patch, but I don't believe that
>     MH> will make any difference.
> That is highly, highly nasty.

Not as nasty as this, though:

dict = {}

# let's force dict to malloc its table
for i in range(1,10):
    dict[i] = i

class Machiavelli:
    def __repr__(self):
        print # doesn't crash without this.  don't know why
        return `"machiavelli"`
    def __hash__(self):
        return 0

dict[Machiavelli()] = Machiavelli()

print dict

gives, even with my posted patch to dictobject.c

$ ./python crash2.py
Segmentation fault (core dumped)

Any ideas what the above code should do?  (Other than use the secret
PSU website to hire a hitman and shoot whoever wrote the code, I


  Well, yes.  I don't think I'd put something like "penchant for anal
  play" and "able to wield a buttplug" in a CV unless it was relevant
  to the gig being applied for...
                                 -- Matt McLeod, alt.sysadmin.recovery