----- Original Message ----

> From: Elizabeth Dodd <ed...@billiau.net>
> To: freevo-users@lists.sourceforge.net
> Sent: Fri, September 24, 2010 2:04:52 AM
> Subject: Re: [Freevo-users] Insecure String Pickle when starting Recordserver
> 
> could you summarise this gem for the  wiki?

Sure. I'm suspecting that when I did a hard reset not too long after starting 
the Freevo, it may have caused an incomplete write to the 
previouslyRecorded.pickle file. Either way, the recordserver would not start, 
throwing an exception: Insecure String Pickle.

(By the way, that's got to be the most awesome exception message I've run into. 
I've been amusing my friends with it all day long.)

It appears in an attempt to keep harmful tampering to a minimum, (c)Pickle does 
basic checks before loading a pickle file. Judging from the posts on the web, 
things like Windows-style EOL characters (\n\r) instead of Linux (\n) will 
cause 
problems. In this case, the last line of the file was truncated mid-line and I 
think that was setting off alarm bells. I neatened up the end of the 
previouslyRecorded.pickle file, trying to end it at a proper boundry, but I 
think I didn't hit it exactly. It doesn't seem to cause too much trouble, but 
that last object is probably missing bits. Hopefully nothing important.

Trying to start recordserver now yeilded an EOFerror exception when trying to 
load the pickle file. I did way too much searching and trying small Python 
scripts to read in the file and write it back out and properly close it and 
doing tests in the freevo prompt shell... all no good. My research turned up 
that pickle files end with a '.', and that gave me a clue. It wasn't until I 
started up recordserver and let it create a new pickle file I found that the 
file ends with 's.' on the final line. I added that (taking steps to eliminate 
the final EOL character that vim adds by default) and the 
previouslyRecorded.pickle would then load properly into the recordserver.

I haven't had a chance to see if it's really working, or if nothing that I've 
already recorded is in the schedule right now. But that's just laziness on my 
part. Suffice to say, recordserver is reading the file without throwing an 
exception, so I'm happy again.

If you let me know where you think this should be put in the Wiki, I can give 
it 
a go myself...

James



      

------------------------------------------------------------------------------
Start uncovering the many advantages of virtual appliances
and start using them to simplify application deployment and
accelerate your shift to cloud computing.
http://p.sf.net/sfu/novell-sfdev2dev
_______________________________________________
Freevo-users mailing list
Freevo-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/freevo-users

Reply via email to