What can I do to save my Samsung Galaxy from a bootloop?
First, if your source is a file, adb push requires the target to be a file as well. Hence, the correct syntax would be:

adb push cm.zip /sdcard/cm.zip


Second, a factory-reset usually doesn't touch the SDCard (internal or external), unless there's an option offered to do so and you checked that.

As for the link error: That looks like something on the device is screwed up. You're probably in recovery mode when trying this, and (just a guess, but a good one) the partition holding the required library file was not mounted.

I don't know what options are available for your device specifically, but there are generally several ways to flash a device, as e.g.:


update.zip via recovery (which is what you're just trying)
side-loading via adb sideload
using fastboot
using a device (or manufacturer) specific flash tool, in your case kies, odin, or heimdall


I'd suggest the last mentioned method: you could e.g. first flash the latest official ROM via Odin/Heimdall, so it is able to boot correctly again. After that, you would have a working device again, and could cleanup your SDCard to use the update.zip method for flashing your CM image.

Another way to free some space: If you know some of the "big filenames", you could try using adb push to overwrite them with "small ones". Say, if there's a video file with 500 MB size in /sdcard/Videos/bigmovie.mp4, you could take an empty text file empty.txt ( 0 Bytes ) and push it over the video:

adb push empty.txt /sdcard/Videos/bigmovie.mp4


This should set enough space free to finally push your cm.zip to the card.