#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
+#include <string.h>
#include "fdpass.h"
unsigned int rcvbuf = 16*1024*1024;
return -1;
}
+void check_source(char *source) {
+ source[arg_length-1]='\0';
+ if (strchr(source,'/') || strstr(source,"..")) {
+ printf("Tried mounting with source = %s\n", source);
+ exit(1);
+ }
+}
+
+void check_target(char *target) {
+ target[arg_length-1]='\0';
+ if (strstr(target,"..")) {
+ printf("Tried mounting with target = %s\n", target);
+ exit(1);
+ }
+}
+
+void check_fstype(char *filesystemtype) {
+ if (strncmp(filesystemtype,"fuse",4)) {
+ printf("Tried mounting filesystem type %s\n", filesystemtype);
+ }
+}
+
int main(int argc, char *argv[]) {
int control_channel_fd, magic_fd, mount_fd;
char source[128],target[128],filesystemtype[128],data[128],slice_target[256];
if (!mount(source, slice_target, filesystemtype, mountflags, data)) {
send_fd(control_channel_fd, magic_fd);
}
+ else {
+ printf ("Error executing mount\n");
+ exit(1);
+ }
+ return 0;
}