niklasb / libc-database

Build a database of libc offsets to simplify exploitation
https://libc.rip/
MIT License
1.68k stars 193 forks source link

Sleep after every download #50

Open mariuszskon opened 3 years ago

mariuszskon commented 3 years ago

This is ensures we consistently perform a sleep regardless what categories we download.

Naively fixes https://github.com/niklasb/libc-database/issues/49.

niklasb commented 3 years ago

can you provide a rationale for this change? what effect are we trying to avoid here?

mariuszskon commented 3 years ago

In short I'm trying to avoid return code 1 when doing ./get launchpad. Launchpad is the only one suffering from this error (debian might but all downloads succeed).

niklasb commented 3 years ago

@mariuszskon sure but why does sleeping help? I'd understand if you would introduce some kind of retry mechanism with a back-off, but 100ms seems like some magic value

mariuszskon commented 3 years ago

I'm not 100% sure but I believe the sleep return code is used which leads to 0. I agree the 100ms is a magic value, but I saw it in all the other get_all_* functions.

mariuszskon commented 3 years ago

To clarify, I don't think this is a great solution either, but I saw the sleep .1 in the other functions and it has the desired side effect of having a zero return code. I want #49 solved, this is perhaps not the way to do it.

niklasb commented 3 years ago

I'm not 100% sure but I believe the sleep return code is used which leads to 0.

I don't think that's accurate. So it's not an obvious fix for me. will have to look at the actual error case.

peace-maker commented 3 years ago

Do we even have a consistent exit code set for the downloads? I mean, there has been an error, so a non-null exit code would be fine - but we've ignored that error and continued downloading other packages.

Maybe just adding an exit 0 at the end of the get script does the trick? Otherwise reducing the set of ubuntu versions tracked by the launchpad downloader would work too, to exclude some really old versions.