[tuxdroid-svn] r239 - svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment va
Status: Beta
Brought to you by:
ks156
From: svnlook:warning@affinitic.be:cannot s. L. l. <c2m...@c2...> - 2007-04-11 19:33:43
|
Author: svnlook: warning: cannot set LC_CTYPE locale Date: svnlook: warning: environment variable LANG is EN New Revision: 239 Modified: daemon/trunk/libs/USBDaemon_tcp_server.c daemon/trunk/libs/USBDaemon_usb_enum.c daemon/trunk/main.c Log: doegox 2007-04-11 21:31:41 +0200 (Wed, 11 Apr 2007) 256 setuid/setgid to nobody:nogroup once the USB descriptor is opened so we can be more confident starting the daemon as root via udev. For extra security tcp_server thread is suspended till usb_thread does the setuid so we try to minimize what's done as root. svnlook: warning: cannot set LC_CTYPE locale svnlook: warning: environment variable LANG is EN svnlook: warning: please check that your locale name is correct Modified: daemon/trunk/libs/USBDaemon_tcp_server.c =================================================================== --- daemon/trunk/libs/USBDaemon_tcp_server.c 2007-04-09 23:16:56 UTC (rev 238) +++ daemon/trunk/libs/USBDaemon_tcp_server.c 2007-04-11 19:31:41 UTC (rev 239) @@ -38,7 +38,8 @@ client_name_t tcp_clients_name[TUX_MAX_TCP_CLIENTS]; struct sockaddr_in tcp_server_sockaddr; tux_tcp_status_t tux_tcp_status = TUX_TCP_STATUS_DOWN; -pthread_mutex_t tcp_mutex; +pthread_mutex_t tcp_mutex, dropcond_mutex; +extern pthread_cond_t dropcond; /*_____________________ F U N C T I O N S __________________________________*/ /************************************************************************ */ @@ -55,6 +56,9 @@ int val; pthread_mutex_init(&tcp_mutex, NULL); + pthread_mutex_init(&dropcond_mutex, NULL); + /* Wait for privileges to be dropped */ + pthread_cond_wait(&dropcond, &dropcond_mutex); if ((tcp_server_handle = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) { printf("TCP socket : server error\n"); Modified: daemon/trunk/libs/USBDaemon_usb_enum.c =================================================================== --- daemon/trunk/libs/USBDaemon_usb_enum.c 2007-04-09 23:16:56 UTC (rev 238) +++ daemon/trunk/libs/USBDaemon_usb_enum.c 2007-04-11 19:31:41 UTC (rev 239) @@ -33,6 +33,7 @@ struct usb_device* tux_device; TUX_USB_CONN_STATUS TUX_USB_STATUS = TUX_USB_DISCONNECTED; pthread_mutex_t usb_mutex; +extern pthread_cond_t dropcond; /*_____________________ F U N C T I O N S __________________________________*/ /************************************************************************ */ @@ -75,6 +76,8 @@ printf("Can't open device: %s (%d)\n", strerror(errno), errno); return NULL; } + setgid(65534); + setuid(65534); /* Claim device interface */ error = usb_claim_interface(tux_hdl, TUX_INTERFACE); if (error != 0) @@ -133,6 +136,9 @@ exit(1); } + /* Signals that root privileges were dropped */ + pthread_cond_signal(&dropcond); + usleep(50000); TUX_USB_STATUS = TUX_USB_CONNECTED; /* Reinit audio channel */ Modified: daemon/trunk/main.c =================================================================== --- daemon/trunk/main.c 2007-04-09 23:16:56 UTC (rev 238) +++ daemon/trunk/main.c 2007-04-11 19:31:41 UTC (rev 239) @@ -53,6 +53,7 @@ unsigned char show_raw_status = 0; unsigned char show_invalid_raw = 0; unsigned short daemon_pid = 0; +pthread_cond_t dropcond; /************************************************************************ */ /* Setup daemon info from version string */ @@ -248,6 +249,7 @@ return 1; } + pthread_cond_init(&dropcond, 0); /* Start USB task thread */ UsbThread = g_thread_create((GThreadFunc)usb_start_task, NULL, TRUE, &error); |