Merge branch 'maint'
[paraslash.git] / grab_client.c
index 1a529176d52ead78ed97f7cc02452d57a49c7387..0ef1c15f33593b9067e385a5c1aab65dcf66f0cd 100644 (file)
@@ -284,7 +284,12 @@ int grab_client_new(int fd, int argc, char **argv, struct sched *s)
        ret = gc_check_args(argc, argv, gc);
        if (ret < 0)
                goto err_out;
-       gc->fd = fd;
+       ret = dup(fd);
+       if (ret < 0) {
+               ret = -ERRNO_TO_PARA_ERROR(errno);
+               goto err_out;
+       }
+       gc->fd = ret;
        para_list_add(&gc->node, &inactive_grab_client_list);
        gc_activate(gc, s);
        return 1;