# HG changeset patch # User reimar # Date 1233330105 0 # Node ID 418d7d21396625b8c23feae7319b053cf4d8141e # Parent 5b1f6e52673b90951f35c72032d3f464b2fb77f9 Move setting of O_NONBLOCK before lirc_readconfig, this avoids a memleak due to not freeing the lirc config on error. diff -r 5b1f6e52673b -r 418d7d213966 input/lirc.c --- a/input/lirc.c Fri Jan 30 15:38:54 2009 +0000 +++ b/input/lirc.c Fri Jan 30 15:41:45 2009 +0000 @@ -46,17 +46,17 @@ return -1; } - if(lirc_readconfig( lirc_configfile,&lirc_config,NULL )!=0 ){ - mp_msg(MSGT_LIRC,MSGL_ERR,MSGTR_LIRCcfgerr, - lirc_configfile == NULL ? "~/.lircrc" : lirc_configfile); + mode = fcntl(lirc_sock, F_GETFL); + if (mode < 0 || fcntl(lirc_sock, F_SETFL, mode | O_NONBLOCK) < 0) { + mp_msg(MSGT_LIRC, MSGL_ERR, "setting non-blocking mode failed: %s\n", + strerror(errno)); lirc_deinit(); return -1; } - mode = fcntl(lirc_sock, F_GETFL); - if (mode < 0 || fcntl(lirc_sock, F_SETFL, mode | O_NONBLOCK) < 0) { - mp_msg(MSGT_LIRC, MSGL_ERR, "setting non-blocking mode failed: %s\n", - strerror(errno)); + if(lirc_readconfig( lirc_configfile,&lirc_config,NULL )!=0 ){ + mp_msg(MSGT_LIRC,MSGL_ERR,MSGTR_LIRCcfgerr, + lirc_configfile == NULL ? "~/.lircrc" : lirc_configfile); lirc_deinit(); return -1; }