Louis Rilling
2008-Jun-05 09:15 UTC
[klibc] RESEND [PATCH][BUGFIX] Fix termination of the spoofing portmapper
Hi, I'm resending since I got no feedback: I assume that the message was lost... The attached patch fixes a few bugs related to the spoofing portmapper used by nfsmount. Regards, Louis -- Dr Louis Rilling Kerlabs Skype: louis.rilling Batiment Germanium Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes http://www.kerlabs.com/ 35700 Rennes -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-dummy-portmapper-termination.patch Type: text/x-diff Size: 1591 bytes Desc: not available Url : http://www.zytor.com/pipermail/klibc/attachments/20080605/77addfa9/attachment.bin
maximilian attems
2008-Jun-05 10:53 UTC
[klibc] RESEND [PATCH][BUGFIX] Fix termination of the spoofing portmapper
On Thu, Jun 05, 2008 at 11:15:31AM +0200, Louis Rilling wrote:> Hi, > > I'm resending since I got no feedback: I assume that the message was lost... > > The attached patch fixes a few bugs related to the spoofing portmapper used > by nfsmount. > > Regards, > > Louis > > -- > Dr Louis Rilling Kerlabs > Skype: louis.rilling Batiment Germanium > Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes > http://www.kerlabs.com/ 35700 Rennes> Fix termination of dummy portmapper > > This patch actually fixes two bugs happening when the dummy portammaper is > started: > 1/ if nfs_mount() fails, nfsmount_main returns without trying to kill the dummy > portmapper; > 2/ kill() is called with arguments inverted, which leads to send an arbitrary, > probably invalid, signal to task 15(!). The most probable side effect is that > the loop over waitpid() never ends, which blocks the boot process without > warning.i've seen that condition happening, thanks for catching the error!> Signed-off-by: Louis Rilling <Louis.Rilling at kerlabs.com>Acked-by: maximilian attems <max at stro.at>> --- > usr/kinit/nfsmount/main.c | 8 +++++--- > 1 file changed, 5 insertions(+), 3 deletions(-) > > Index: b/usr/kinit/nfsmount/main.c > ==================================================================> --- a/usr/kinit/nfsmount/main.c 2008-05-28 18:43:39.000000000 +0200 > +++ b/usr/kinit/nfsmount/main.c 2008-05-28 19:08:03.000000000 +0200 > @@ -168,6 +168,7 @@ int nfsmount_main(int argc, char *argv[] > const char *portmap_file; > pid_t spoof_portmap; > int err; > + int ret;just a nitpick, that variable declation could be on the same line.> > if ((err = setjmp(abort_buf))) > return err; > @@ -243,13 +244,14 @@ int nfsmount_main(int argc, char *argv[] > return 1; > #endif > > + ret = 0; > if (nfs_mount(rem_name, hostname, server, rem_path, path, > &mount_data) != 0) > - return 1; > + ret = 1; > > /* If we set up the spoofer, tear it down now */ > if (spoof_portmap) { > - kill(SIGTERM, spoof_portmap); > + kill(spoof_portmap, SIGTERM); > while (waitpid(spoof_portmap, NULL, 0) == -1 && > errno == EINTR) > ; > @@ -257,5 +259,5 @@ int nfsmount_main(int argc, char *argv[] > > free(rem_name); > > - return 0; > + return ret; > }guess hpa will pick it up soonest, otherwise i'll prepare it for my git tree for this weekend, have a small bunch of fixes pending -- maks
Louis Rilling
2008-Jun-05 11:24 UTC
[klibc] RESEND [PATCH][BUGFIX] Fix termination of the spoofing portmapper
On Thu, Jun 05, 2008 at 12:53:15PM +0200, maximilian attems wrote:> > Index: b/usr/kinit/nfsmount/main.c > > ==================================================================> > --- a/usr/kinit/nfsmount/main.c 2008-05-28 18:43:39.000000000 +0200 > > +++ b/usr/kinit/nfsmount/main.c 2008-05-28 19:08:03.000000000 +0200 > > @@ -168,6 +168,7 @@ int nfsmount_main(int argc, char *argv[] > > const char *portmap_file; > > pid_t spoof_portmap; > > int err; > > + int ret; > > just a nitpick, that variable declation could be on the same line.Ok, done in the new version attached. Thanks, Louis -- Dr Louis Rilling Kerlabs Skype: louis.rilling Batiment Germanium Phone: (+33|0) 6 80 89 08 23 80 avenue des Buttes de Coesmes http://www.kerlabs.com/ 35700 Rennes -------------- next part -------------- A non-text attachment was scrubbed... Name: fix-dummy-portmapper-termination.patch Type: text/x-diff Size: 1606 bytes Desc: not available Url : http://www.zytor.com/pipermail/klibc/attachments/20080605/0992e353/attachment.bin