From: Lennert B. <bu...@gn...> - 2001-03-28 16:58:49
|
Hi, http://www.math.leidenuniv.nl/~buytenh/uml/mconsole/ has a patch against uml which adds a management console interface. The basic idea is that uml opens a socket in /tmp through which commands like 'reboot', 'halt', 'start debugger' can be sent. This is based on an idea by Jeff Dike. cheers, Lennert |
From: Jeff D. <jd...@ka...> - 2001-03-28 18:47:53
|
bu...@gn... said: > has a patch against uml which adds a management console interface. The > basic idea is that uml opens a socket in /tmp through which commands > like 'reboot', 'halt', 'start debugger' can be sent. Cool. This fits in with the umid patch that Greg Lonnon sent in. You'll be able to assign each virtual machine a name, open up the socket using that name, and with an appropriate UI, control a whole batch of VMs. Jeff |
From: Lennert B. <bu...@gn...> - 2001-03-29 18:52:55
|
On Wed, Mar 28, 2001 at 02:59:51PM -0500, Jeff Dike wrote: > > has a patch against uml which adds a management console interface. The > > basic idea is that uml opens a socket in /tmp through which commands > > like 'reboot', 'halt', 'start debugger' can be sent. > > Cool. This fits in with the umid patch that Greg Lonnon sent in. I didn't see this? > You'll be > able to assign each virtual machine a name, open up the socket using that > name, and with an appropriate UI, control a whole batch of VMs. Yeah, that's the basic idea. I'm using host name now, but that doesn't seem like a good primary key. cheers, Lennert |
From: Greg L. <gl...@ri...> - 2001-03-28 21:33:15
|
Lennert, Here's a small patch to ucc.c to find socket files in /tmp. Thanks for the driver, it was on my todo list... :) Greg -- Greg Lonnon mailto:gl...@ri... --- ucc.c Wed Mar 28 14:22:34 2001 +++ ucc.c.orig Wed Mar 28 14:25:39 2001 @@ -6,26 +6,20 @@ #include <sys/poll.h> #include <sys/socket.h> #include <sys/un.h> -#include <sys/stat.h> #include <unistd.h> int fd; char socket_name[128]; -char *dir="/tmp/"; + int select_uml_socket(const struct dirent *de) { - struct stat buf; - mode_t mode; - char file[256]; - if (memcmp(de->d_name, "uml", 3)) return 0; - memset(file,0,256); - strcat(file,dir); - strcat(file,de->d_name); - stat(file,&buf); - return S_ISSOCK(buf.st_mode); + + /* @@@ check whether it's a socket */ + + return 1; } void find_and_open_socket() @@ -36,7 +30,7 @@ struct dirent **sockets; int yes; - num = scandir(dir, &sockets, select_uml_socket, alphasort); + num = scandir("/tmp", &sockets, select_uml_socket, alphasort); if (num < 0) { perror("scandir"); exit(-1); @@ -48,9 +42,8 @@ } for (i=0;i<num;i++) { - strcpy(socket_name, dir); + strcpy(socket_name, "/tmp/"); strcat(socket_name, sockets[i]->d_name); - printf("socket name %s\n",socket_name); break; } |
From: Lennert B. <bu...@gn...> - 2001-03-29 19:04:09
|
On Wed, Mar 28, 2001 at 02:32:54PM -0700, Greg Lonnon wrote: > Lennert, > > Here's a small patch to ucc.c to find socket files in /tmp. Your patch appears to be wrapped and reversed, and I think it introduces an exploitable buffer overrun. I've applied something similar, thanks. > Thanks for the driver, it was on my todo list... :) Welcome :) cheers, Lennert |