[patch] rsync: fix for closing uninitialized file descriptor

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[patch] rsync: fix for closing uninitialized file descriptor

Hiltjo Posthuma

I noticed the following with the reproducable command:

openrsync -av rsync:// a


-> 99882 openrsync CALL  close(1249939456)
-> 99882 openrsync RET   close -1 errno 9 Bad file descriptor
   99882 openrsync CALL  kbind(0x7f7fffff7a50,24,0x281ae61c4bf1563c)
   99882 openrsync RET   kbind 0
   99882 openrsync CALL  socket(AF_INET,0x1<SOCK_STREAM>,0)
   99882 openrsync RET   socket 3

rsync_connect is called with sd uninitialized, but in inet_connect() it checks
against sd:

        if (*sd != -1)

Patch below:

diff --git usr.bin/rsync/main.c usr.bin/rsync/main.c
index 967e6528bc2..fa0e749e642 100644
--- usr.bin/rsync/main.c
+++ usr.bin/rsync/main.c
@@ -271,7 +271,7 @@ main(int argc, char *argv[])
  struct opts opts;
  pid_t child;
- int fds[2], sd, rc, c, st, i;
+ int fds[2], sd = -1, rc, c, st, i;
  struct sess  sess;
  struct fargs *fargs;
  char **args;

Kind regards,