diff -urN lbuscd-0.6.orig/lbuscd.c lbuscd-0.6/lbuscd.c --- lbuscd-0.6.orig/lbuscd.c 2006-07-04 23:27:44 +0300 +++ lbuscd-0.6/lbuscd.c 2008-05-07 15:30:28 +0300 @@ -1039,37 +1039,38 @@ void send_AddBlockDevice_msg( int devidx, int msgid, int sock ) { - char buffer[512]; +#define BUF_SIZE 512 + char buffer[BUF_SIZE]; int nbytes; - sprintf(buffer,"AddBlockDevice|%d|%d|%s|%d|%d|%s\r\n", - msgid, - Devices[devidx].devnum, - Devices[devidx].sharename, - Devices[devidx].removeable, - Devices[devidx].size, - ( ( Devices[devidx].cdrom ) ? Devices[devidx].volumeid - : Devices[devidx].desc ) ); - -#ifdef COMMENT - if( Devices[devidx].cdrom ){ - sprintf(buffer,"AddBlockDevice|%d|%d|%s|%d|%d|%s\r\n", +#if COMMENT + if( Devices[devidx].cdrom ) + snprintf(buffer,BUF_SIZE,"AddBlockDevice|%d|%d|%s|%d|%d|%s %s\r\n", msgid, Devices[devidx].devnum, Devices[devidx].sharename, Devices[devidx].removeable, Devices[devidx].size, + Devices[devidx].desc, Devices[devidx].volumeid ); - } - else{ - sprintf(buffer,"AddBlockDevice|%d|%d|%s|%d|%d|%s\r\n", + else + snprintf(buffer,BUF_SIZE,"AddBlockDevice|%d|%d|%s|%d|%d|%s\r\n", msgid, Devices[devidx].devnum, Devices[devidx].sharename, Devices[devidx].removeable, Devices[devidx].size, Devices[devidx].desc ); - } +#else + nbytes = snprintf(buffer,BUF_SIZE,"AddBlockDevice|%d|%d|%s|%d|%d|%s\r\n", + msgid, + Devices[devidx].devnum, + Devices[devidx].sharename, + Devices[devidx].removeable, + Devices[devidx].size, + Devices[devidx].desc ); + if( Devices[devidx].cdrom ) + snprintf(&buffer[nbytes-1],BUF_SIZE-nbytes," %s\r\n", Devices[devidx].volumeid ); #endif if(fDebug)