Schnouki / spop

A Spotify client running as a daemon, similar to mpd.
GNU General Public License v3.0
248 stars 17 forks source link

savestate double free segmentation fault. #1

Closed n2k closed 12 years ago

n2k commented 12 years ago

On line 174 in plugins/savestate.c you are doing sp_track_release(tr); and then later on line 196 you are doing a g_array_free(s->tracks, TRUE); so you get a double free segmentation fault

Schnouki commented 12 years ago

I'm sorry, but I don't think this can cause a double free.

sp_track_release() frees some libspotify internal memory. g_array_free() frees a GArray allocated by spop, but it does not touch anything in libspotify. So really, I don't see how this can cause a double free.

If you still have this issue, could you please send me a spop debug log, maybe a gdb backtrace, and if posible a copy of the state file? (~/.cache/spop/state.json)

(To produce a gdb backtrace, run gdb --args /path/to/spopd -d, type run, and after it crashed type bt.)

n2k commented 12 years ago

Here is the "faulty" state file. think it fails on 2-3 tracks not being available.

By the way, are you still studying or have you started working ?

.n

On Thursday, November 17, 2011 at 2:05 PM, Thomas Jost wrote:

I'm sorry, but I don't think this can cause a double free.

sp_track_release() frees some libspotify internal memory. g_array_free() frees a GArray allocated by spop, but it does not touch anything in libspotify. So really, I don't see how this can cause a double free.

If you still have this issue, could you please send me a spop debug log, maybe a gdb backtrace, and if posible a copy of the state file? (~/.cache/spop/state.json)

(To produce a gdb backtrace, run gdb --args /path/to/spopd -d, type run, and after it crashed type bt.)


Reply to this email directly or view it on GitHub: https://github.com/Schnouki/spop/issues/1#issuecomment-2775746

Schnouki commented 12 years ago

On Thu, 17 Nov 2011 07:05:47 -0800, n2k reply@reply.github.com wrote:

Here is the "faulty" state file. think it fails on 2-3 tracks not being available.

No file here (thank you Github issue management system :)). Maybe you shoudl try Pastebin or something like that to send it.

By the way, are you still studying or have you started working ?

Both :) PhD students are hired with a 3 years work contract here (legal requirement). So I do have a job with a decent salary :)

Regards,

Thomas/Schnouki

n2k commented 12 years ago

Hi again, here is the state file that breaks it… looks like there is 2-3 tracks that isn't available and that makes it crash. http://degero.se/state.json

are you working on any more new features on spopd ?

So how much studying do you have left ? :)

Best Regards

.n

On Friday, November 18, 2011 at 1:12 AM, Thomas Jost wrote:

On Thu, 17 Nov 2011 07:05:47 -0800, n2k <reply@reply.github.com (mailto:reply@reply.github.com)> wrote:

Here is the "faulty" state file. think it fails on 2-3 tracks not being available.

No file here (thank you Github issue management system :)). Maybe you shoudl try Pastebin or something like that to send it.

By the way, are you still studying or have you started working ?

Both :) PhD students are hired with a 3 years work contract here (legal requirement). So I do have a job with a decent salary :)

Regards,

Thomas/Schnouki


Reply to this email directly or view it on GitHub: https://github.com/Schnouki/spop/issues/1#issuecomment-2784010

Schnouki commented 12 years ago

Thanks for the state file. I was able to reproduce the problem and I think I fixed it. Could you please check?

(Theoretically I have one year left before the end of my thesis. I hope it will be enough :))