null+****@clear*****
null+****@clear*****
2010年 6月 25日 (金) 14:26:26 JST
Nobuyoshi Nakada 2010-06-25 05:26:26 +0000 (Fri, 25 Jun 2010) New Revision: 7a849d439454ace9533d734e51448af882fd0e37 Log: fix writing out of bounds Modified files: src/groonga.c Modified: src/groonga.c (+4 -4) =================================================================== --- src/groonga.c 2010-06-25 06:25:59 +0000 (e4f17e3) +++ src/groonga.c 2010-06-25 05:26:26 +0000 (56cfd68) @@ -1805,18 +1805,18 @@ main(int argc, char **argv) grn_set_term_handler(); if (listen_addressstr) { size_t listen_addresslen = strlen(listen_addressstr); - if (listen_addresslen > HOST_NAME_MAX) { + if (listen_addresslen > HOST_NAME_MAX - 1) { memcpy(listen_address, listen_addressstr, HOST_NAME_MAX - 1); - listen_address[HOST_NAME_MAX] = '\0'; + listen_address[HOST_NAME_MAX - 1] = '\0'; } else { strcpy(listen_address, listen_addressstr); } } if (hostnamestr) { size_t hostnamelen = strlen(hostnamestr); - if (hostnamelen > HOST_NAME_MAX) { + if (hostnamelen > HOST_NAME_MAX - 1) { memcpy(hostname, hostnamestr, HOST_NAME_MAX - 1); - hostname[HOST_NAME_MAX] = '\0'; + hostname[HOST_NAME_MAX - 1] = '\0'; } else { strcpy(hostname, hostnamestr); }