Hello everyone. Good news! Also, sprach Miklos Szeredi am Samstag, den 30. Dezember 2006 um 14:56: > Thanks. I believe I undestand now: the buffer reserved for the cmsg > is itself unaligned because it's a char array. It should be an > array of size_t, which will have the required alignment. > > When you have time, can you please try out this patch? The old > patch shouldn't be needed. If it still breaks, then please send a > new backtrace with debug information, since it may be a different > problem.
This is what happened after I compiled a clean version with only the
new patch:
$ sshfs [EMAIL PROTECTED]:/home/smc phobos/
$ cd phobos/
$ ls
insgesamt 156
drwxr-xr-x 1 smc smc 1728 2006-12-22 07:43 ALSTOM/
drwxr-xr-x 1 smc smc 1392 2006-12-10 22:08 archiv/
[...]
$ cp tempcd/STOGAMhigh.mov ~
tempcd/STOGAMhigh.mov -> /home/smc/STOGAMhigh.mov
$ sha1sum /home/smc/STOGAMhigh.mov
c531b6886ec7123ade8b414a2f91f46a6c4df4f7 /home/smc/STOGAMhigh.mov
$ ssh phobos sha1sum tempcd/STOGAMhigh.mov
c531b6886ec7123ade8b414a2f91f46a6c4df4f7 tempcd/STOGAMhigh.mov
$ dmesg | grep -i unaligned
$
In other words: works fine, thanks!
The patch did not apply to this clean source, though (FSM knows why),
and I had to apply it by hand (I can add "patch(1) replacement" to my
CV now, I guess :)). I attached a version created by diff --unified
(which, of course, you probably will not need ;)).
So from my side this problem seems to be wholly solved! Thanks for
your help and responsiveness. This is a big part of why I feel so
much better using Debian :).
Greetings,
--
: Sebastian Fontius : www.fsfe.org : www.fsfe.org/en/fellows/smc
`--------+----------+--------------+-----------------------------------.
[] | "They that can give up essential liberty to obtain a little |
[][][] | temporary safety deserve neither liberty nor safety." |
|| : Benjamin Franklin, 1759 :
--- mount.c~ 2006-02-19 18:19:41.000000000 +0100
+++ mount.c 2006-12-31 01:03:26.000000000 +0100
@@ -131,7 +131,7 @@
char buf[1];
int rv;
int connfd = -1;
- char ccmsg[CMSG_SPACE(sizeof(connfd))];
+ size_t ccmsg[CMSG_SPACE(sizeof(int))/sizeof(size_t)];
struct cmsghdr *cmsg;
iov.iov_base = buf;
signature.asc
Description: Digital signature

