@@ -62,7 +62,7 @@ void emit(int fd, int type, int code, int val)
6262 ie .type = type ;
6363 ie .code = code ;
6464 ie .value = val ;
65- write (fd , & ie , sizeof (ie ));
65+ if ( write (fd , & ie , sizeof (ie )) != sizeof ( ie )) { perror ( "write(input_event)" ); }
6666}
6767
6868static void exit_handler (int sig ) {
@@ -219,7 +219,6 @@ int init(int argc, char* argv[]){
219219}
220220
221221int main (int argc , char * argv []) {
222- struct uinput_user_dev uidev ;
223222 int i , j ;
224223
225224 signal (SIGINT , exit_handler );
@@ -246,24 +245,28 @@ int main(int argc, char* argv[]) {
246245 if (! * hal -> init ) continue ;
247246 if (* hal -> init && ! param -> inited ) {
248247 param -> fd = open ("/dev/uinput" , O_WRONLY | O_NONBLOCK );
249- if (param -> fd < 0 ) rtapi_print_msg (RTAPI_MSG_ERR ,
250- "Cannot open /dev/uinput. Suggest chmod 666 /dev/uinput\n" );
248+ if (param -> fd < 0 ) {
249+ rtapi_print_msg (RTAPI_MSG_ERR ,
250+ "Cannot open /dev/uinput. Suggest chmod 666 /dev/uinput\n" );
251+ abort ();
252+ }
251253 ioctl (param -> fd , UI_SET_EVBIT , EV_KEY );
252254 for (j = 0 ; j < param -> num_events ; j ++ ){
253255 if (hal -> event [j ] > 0 && hal -> event [j ] < KEY_MAX ){
254256 ioctl (param -> fd , UI_SET_KEYBIT , hal -> event [j ]);
255257 rtapi_print ("SET_EVBIT %i\n" , hal -> event [j ]);
256258 }
257259 }
260+ struct uinput_user_dev uidev ;
258261 memset (& uidev , 0 , sizeof (uidev ));
259262 strcpy (uidev .name , "linuxcnc-hal" );
260263 uidev .id .bustype = BUS_USB ;
261264 uidev .id .vendor = 0x1 ;
262265 uidev .id .product = 0x1 ;
263266 uidev .id .version = 1 ;
264267
265- write (param -> fd , & uidev , sizeof (uidev ));
266- ioctl (param -> fd , UI_DEV_CREATE );
268+ if ( write (param -> fd , & uidev , sizeof (uidev )) != sizeof ( uidev )) { perror ( "write(uinput_user_dev)" ); abort (); }
269+ if ( ioctl (param -> fd , UI_DEV_CREATE ) < 0 ) { perror ( "ioctl(UI_DEV_CREATE)" ); abort (); }
267270 param -> inited = 1 ;
268271 }
269272 if (* hal -> keycode != param -> oldcode ) {
0 commit comments