* Ported to Linux's Second Extended File System as part of the
* dump and restore backup suit
* Remy Card <card@Linux.EU.Org>, 1994-1997
- * Stelian Pop <pop@cybercable.fr>, 1999
+ * Stelian Pop <pop@noos.fr>, 1999-2000
+ * Stelian Pop <pop@noos.fr> - AlcĂ´ve <www.alcove.fr>, 2000
*/
/*-
#ifndef lint
static const char rcsid[] =
- "$Id: dumprmt.c,v 1.10 2000/01/17 16:32:44 stelian Exp $";
+ "$Id: dumprmt.c,v 1.16 2001/02/22 10:57:39 stelian Exp $";
#endif /* not lint */
+#include <config.h>
#ifdef __linux__
#include <sys/types.h>
#include <linux/types.h>
rshcmd[4] = rmt;
rshcmd[5] = NULL;
+ /* Restore the uid and gid. We really don't want
+ * to execute whatever is put into RSH variable with
+ * more priviledges than needed... */
+ setuid(getuid());
+ setgid(getgid());
+
if ((rshpid = piped_child(rshcmd)) < 0) {
msg("cannot open connection\n");
return 0;
{
char line[30];
- (void)snprintf(line, sizeof (line), "W%d\n", count);
+ (void)snprintf(line, sizeof (line), "W%ld\n", (long)count);
write(tormtape, line, strlen(line));
write(tormtape, buf, count);
return (rmtreply("write"));