Problem with sethostname() ??

From: Suresh babu V. (suresh.babu@wipro.com)
Date: Thu Oct 10 2002 - 01:43:28 EST


Hi,

        While attempting for some testing with sethostname() call, I got
this problem . As explained in the man page the sethostname call is
failing(ret val = -1 & errno = EFAULT(14)) for invalid address and valid
length. But the problem is after running the following test, hostname is
getting reset to NULL. I tested in both 2.4 & 2.5 kernels.

Any comments on this??

----------------------------------
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>

main()
{
int ret, errno;
unsigned short int len;
char host[50]="tmphost"; /* hostname max size is 64 */
errno = 0;
len = sizeof(host);

/* valid length and invalid address, expected err is EFAULT */
ret = sethostname((void *)-1, len);
printf("return val : %d, err no: %d \n",ret,errno);

}
-------------------------------------------------

        I saw the code of sys_sethostname() function (sys.c) , in which
copy_from_user() is being called. I would like to know is it required to
validate the name argument before calling copy_from_user() to avoid such
problems.

        We could expect similar problem in setdomainname() also in which
same sort of code is used.

PS : Please CC me your replies as I havn't subscribed to the list.
 
Thanks,
Suresh.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Oct 15 2002 - 22:00:36 EST