From 8a05efa36566fbd50c3222e5f31676b52d10fa4a Mon Sep 17 00:00:00 2001 From: Joseph Henry Date: Tue, 13 Oct 2015 17:57:17 -0400 Subject: [PATCH] EBADF, EOPNOTSUPP, EMFILE error repoarting for accept() --- netcon/NetconEthernetTap.cpp | 12 ++++++------ netcon/intercept.c | 34 ++++++++++++++++++++++++++-------- netcon/libintercept.so.1.0 | Bin 52376 -> 52984 bytes 3 files changed, 32 insertions(+), 14 deletions(-) diff --git a/netcon/NetconEthernetTap.cpp b/netcon/NetconEthernetTap.cpp index fc37ee87c..f01dcadf9 100644 --- a/netcon/NetconEthernetTap.cpp +++ b/netcon/NetconEthernetTap.cpp @@ -494,18 +494,18 @@ int NetconEthernetTap::send_return_value(int fd, int retval, int _errno = 0) to be accepted. POSIX.1-2001 allows either error to be returned for this case, and does not require these constants to have the same value, so a portable application should check for both possibilities. - [ ] EBADF - The descriptor is invalid. - [i] ECONNABORTED - A connection has been aborted. + [I] EBADF - The descriptor is invalid. + [I] ECONNABORTED - A connection has been aborted. [i] EFAULT - The addr argument is not in a writable part of the user address space. [ ] EINTR - The system call was interrupted by a signal that was caught before a valid connection arrived; see signal(7). [ ] EINVAL - Socket is not listening for connections, or addrlen is invalid (e.g., is negative). [ ] EINVAL - (accept4()) invalid value in flags. - [ ] EMFILE - The per-process limit of open file descriptors has been reached. + [I] EMFILE - The per-process limit of open file descriptors has been reached. [ ] ENFILE - The system limit on the total number of open files has been reached. [ ] ENOBUFS, ENOMEM - Not enough free memory. This often means that the memory allocation is limited by the socket buffer limits, not by the system memory. [i] ENOTSOCK - The descriptor references a file, not a socket. - [i] EOPNOTSUPP - The referenced socket is not of type SOCK_STREAM. + [I] EOPNOTSUPP - The referenced socket is not of type SOCK_STREAM. [ ] EPROTO - Protocol error. * @@ -675,8 +675,8 @@ void NetconEthernetTap::nc_err(void *arg, err_t err) l->tap->send_return_value(l->conn, -1, EISCONN); break; case ERR_ABRT: - fprintf(stderr, "nc_err(): ERR_ABRT->ETIMEDOUT\n"); // FIXME: Correct? - l->tap->send_return_value(l->conn, -1, ETIMEDOUT); + fprintf(stderr, "nc_err(): ERR_ABRT->ECONNREFUSED\n"); + l->tap->send_return_value(l->conn, -1, ECONNREFUSED); break; // FIXME: Below are errors which don't have a standard errno correlate diff --git a/netcon/intercept.c b/netcon/intercept.c index daf88f6a2..46f01987a 100755 --- a/netcon/intercept.c +++ b/netcon/intercept.c @@ -73,6 +73,8 @@ char *progname = ""; #include "common.h" #ifdef CHECKS + //#include + #include #include /* for NPROTO */ #define SOCK_MAX (SOCK_PACKET + 1) @@ -763,6 +765,30 @@ int accept4(ACCEPT4_SIG) accept() intercept function */ int accept(ACCEPT_SIG) { +#ifdef CHECKS + /* Check that this is a valid fd */ + if(fcntl(sockfd, F_GETFD) < 0) { + return -1; + errno = EBADF; + } + int sock_type = -1; + socklen_t sock_type_len = sizeof(sock_type); + getsockopt(sockfd, SOL_SOCKET, SO_TYPE, + (void *) &sock_type, &sock_type_len); + /* Check that this socket supports accept() */ + if(!(sock_type & (SOCK_STREAM | SOCK_SEQPACKET))) { + errno = EOPNOTSUPP; + return -1; + } + /* Check that we haven't hit the soft-limit file descriptors allowed */ + struct rlimit rl; + getrlimit(RLIMIT_NOFILE, &rl); + if(sockfd >= rl.rlim_cur){ + errno = EMFILE; + return -1; + } +#endif + #ifdef DUMMY return realaccept(sockfd, addr, addrlen); #else @@ -770,17 +796,9 @@ int accept(ACCEPT_SIG) if(sockfd == STDIN_FILENO || sockfd == STDOUT_FILENO || sockfd == STDERR_FILENO) return(realaccept(sockfd, addr, addrlen)); - int sock_type = -1; - socklen_t sock_type_len = sizeof(sock_type); - - getsockopt(sockfd, SOL_SOCKET, SO_TYPE, - (void *) &sock_type, &sock_type_len); - addr->sa_family = AF_INET; /* TODO: also get address info */ - /* FIXME: Check that socket is type SOCK_STREAM */ - char cmd[BUF_SZ]; if(realaccept == NULL) { dwr( "Unresolved symbol: accept()\n"); diff --git a/netcon/libintercept.so.1.0 b/netcon/libintercept.so.1.0 index 4d8b2f198634e13413eeaedb69d91384996867bf..968eb4bf43f03c3158ac2eea55d6fee71fe4792d 100755 GIT binary patch literal 52984 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�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%0DLaDk`4(k-qk}_rR0u`0WY>6NK0V!Bi?!Xm= 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

YQaAXzW@? zuu_A29nx|QYGxdwGlI1HOJhF|3u^HG2*Kzm>P$yCij^8H zaY$=47*Hh3*z>_Ajp)4TN##C`{lw9()Zl#%X^jTm&h9StrD3)pP8i!P&L7j6S zW8+LEovTtYaEaNFrsxv-IMT^UlqTtNCXj`4iy4+CY8M5Q<>wSj6R%d;C5bkDHQvQ9 z`MoMZ5gJsAn%CegQ_^r+roq{YBx^p}*87UUM~}JT&dFnJGBm97kx|r`&I-yJbm!VTin?51I=L>>pw0;)+i|f*bVkf}**=Zwyl}|T zpgY^%GgzIiHftK?8VoprtI*(DSK!L`X{;_Rs6p)yy({m-yK?Q_?g)z-(>`M+5nVeI zm4eOzt*u>=`1Vk4AZbH4g-LfP@WC+Y1qFt)>vc_It`gB@MSQfOUpj`$dmAd3u7vlO zs@tNMtMrE|^`=Rg6qV|GrD078@qO~#w0!ivRmlzSa|TOzno6guG+(8QRJv)1lsjLg z7pgS+o>bVfg!JpH_`e=HkNi^T?f)o zt4ud&sHr&=%*K8FY_58$&BCe}fo-V9+JfxbElpe$B2p}a5F9KE5DP-wNC3RnU_&(p z71YuYGO|Nla+=-REN-@E2R8)jTDh2vclRC4$QCQMs#{yDw;0)VK(OLKz%Yh&uQkZF z8CI~%7DlD9b!}}%HkU47=`0)!u4`Wpz3Qg*LC_^C7GG%Ax^-N;sxUmj6VxyQp+T&& z(4ex^E0R$J3mr%|XgABkTKA)>wj$}4p}%VzN%tE1`?rzw7(;(YHj*A|=5HCZ=$JY)F$CoHMNc!P+{(`Q(e9XvP2#@XE4Y-_N3D z(->qF<@o_oS8jY*ob-}BzaVJ(3`Jk7=(gY@?25iSie94VI?mb-Pljl}B}zV^=o_Nw zXDj;VD0-WsZ;hf~py)fI=$9+{$|(Ae6um5p{u9s{H+_rreAU07Q}P8$UYF}7(EE!2 z>;2F{?o*zlzu8Co|47hNd$sd_f}RRLqrV_E82*wT{W+Nlf)1sqZGJ!W)u0bF!u?3s zdu>1R{2C&>?6vI_b_N;y^ZbH0QAzM<)|dQk{m_2_dJ6oRt?Vc>#;^L3=hwU#hZfak zVwA$${m6gO4}FkF+R^9RdPEqh=zewneZR7Qf}m^f!s*O@=*7y8K10@a%KDLCr{wj` zX#K^9_I~7l&<}l|vZEiK(Pts|^dtYIlHaX{ERGl4e%+5eUyIaN{qh;n6pRD*0>9AL zyBN?}U(x+;n4%w0i?D)9Aw$`TZV%$+soJP3EfjWK1O@W7U(8qEMg17>5E=MqSCBNt$_6&7$>L!r^}Ge5~XTNHfM*6^CPru5Vt%id+msya0;zHC7Td{d*;^FMN+tb}S5- zjI&-F@}9CYNYSIeq;#U7D|84{xuB>;#;(=L1hJ&G z3C}?|Poa?JTF|T(iIXZ8w-X32at=07l{D8=SVUdV81(VLK(<)4jE5?!+p?#s1=r46 zW9LD^K*6e|c}t4%pvt0>(gk@XfzpKwD+((Em3a$F3IqK<&C% zF6NG8M?N{CR;)*g=qHv`9f~F8krHB&cO)rX%TfM_2R0%f*-@*^BMqo^`B6l~B)sC9 zE6Stz;RjJ73nm|$i4>NL+9PS=nTI~wm-~4YEN*XW!$Ugg7HFtqX?CO$z1lsBD%bC` z_OUL#v9Y=d%k#regG4;}5%D07eB>e0n0{DKuh5U=>SsQ}&r9&Bfk+wMOVu+Wq6dop zC@P4L`02+`T#trml6Zb2%AS7K#@$i*{9B|LU)UO1H9RAalo3xb$R~UBvyzc2>>80O z@>zsPnlq;TF94pWaE!$?LTvi{Tc;U{t`iKa5nDE}<2^miT3?^1>lBl1vEgtfHa)*p zs4*Kr0)CFZ0-W=Db--i3WNCeU2AB&PZ9Do(K%f7gs~M2trrePT_C@&hxct}G2Xwks zNoxPKIh|I4|Gi6JUq{esuF{Y8Uy+Sk0GdadzTTkI-AYjBA6@qbi)Sc5l}Jap$kEujmvn>5AB*^S>F~B>Z&!=<6_F&zEY^ z^3nKR5W`g(N8h<#bLzjR|1iWDd!4_&u460xBdYwm+&X_<4^KjuB3fTx|LHmnL~OdB zNi5ucw4G;1co-R&_qHFz=qv*OgI((?9wt!iyo5L i)_9qYK{6FT9Zub^I41X%{|oGx*j~~dSE9XQ_5T2pvbVed