ruby-changes:23414
From: akr <ko1@a...>
Date: Tue, 24 Apr 2012 22:00:08 +0900 (JST)
Subject: [ruby-changes:23414] akr:r35465 (trunk): * ext/socket/raddrinfo.c (init_unix_addrinfo): show actual path length
akr 2012-04-24 21:59:32 +0900 (Tue, 24 Apr 2012) New Revision: 35465 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=35465 Log: * ext/socket/raddrinfo.c (init_unix_addrinfo): show actual path length when it is too long for Unix socket. * ext/socket/unixsocket.c (rsock_init_unixsock): ditto. * ext/socket/socket.c (sock_s_pack_sockaddr_un): ditto. Modified files: trunk/ChangeLog trunk/ext/socket/raddrinfo.c trunk/ext/socket/socket.c trunk/ext/socket/unixsocket.c Index: ChangeLog =================================================================== --- ChangeLog (revision 35464) +++ ChangeLog (revision 35465) @@ -1,3 +1,12 @@ +Tue Apr 24 21:57:53 2012 Tanaka Akira <akr@f...> + + * ext/socket/raddrinfo.c (init_unix_addrinfo): show actual path length + when it is too long for Unix socket. + + * ext/socket/unixsocket.c (rsock_init_unixsock): ditto. + + * ext/socket/socket.c (sock_s_pack_sockaddr_un): ditto. + Tue Apr 24 21:43:58 2012 Yusuke Endoh <mame@t...> * lib/net/smtp.rb (check_continue): raise an error with an explanatory Index: ext/socket/raddrinfo.c =================================================================== --- ext/socket/raddrinfo.c (revision 35464) +++ ext/socket/raddrinfo.c (revision 35465) @@ -768,8 +768,8 @@ StringValue(path); if (sizeof(un.sun_path) <= (size_t)RSTRING_LEN(path)) - rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)", - (int)sizeof(un.sun_path)-1); + rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)", + RSTRING_LEN(path), (int)sizeof(un.sun_path)-1); MEMZERO(&un, struct sockaddr_un, 1); Index: ext/socket/socket.c =================================================================== --- ext/socket/socket.c (revision 35464) +++ ext/socket/socket.c (revision 35465) @@ -1429,8 +1429,8 @@ sockaddr.sun_family = AF_UNIX; sun_path = StringValueCStr(path); if (sizeof(sockaddr.sun_path) <= strlen(sun_path)) { - rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)", - (int)sizeof(sockaddr.sun_path)-1); + rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)", + RSTRING_LEN(path), (int)sizeof(sockaddr.sun_path)-1); } strncpy(sockaddr.sun_path, sun_path, sizeof(sockaddr.sun_path)-1); addr = rb_str_new((char*)&sockaddr, sizeof(sockaddr)); Index: ext/socket/unixsocket.c =================================================================== --- ext/socket/unixsocket.c (revision 35464) +++ ext/socket/unixsocket.c (revision 35465) @@ -40,8 +40,8 @@ MEMZERO(&sockaddr, struct sockaddr_un, 1); sockaddr.sun_family = AF_UNIX; if (sizeof(sockaddr.sun_path) <= (size_t)RSTRING_LEN(path)) { - rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)", - (int)sizeof(sockaddr.sun_path)-1); + rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)", + RSTRING_LEN(path), (int)sizeof(sockaddr.sun_path)-1); } memcpy(sockaddr.sun_path, RSTRING_PTR(path), RSTRING_LEN(path)); -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/