2005-04-04 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / support / unistd.c
index c20f29513addfbe2792b2516f100daa548cf4f5a..c8b71ab74cd5d37f500097244ddc4a66c5a9bdce 100644 (file)
@@ -138,8 +138,12 @@ Mono_Posix_Syscall_ttyname_r (int fd, char *buf, mph_size_t len)
 gint32
 Mono_Posix_Syscall_readlink (const char *path, char *buf, mph_size_t len)
 {
+       int r;
        mph_return_if_size_t_overflow (len);
-       return readlink (path, buf, (size_t) len);
+       r = readlink (path, buf, (size_t) len);
+       if (r >= 0 && r < len)
+               buf [r] = '\0';
+       return r;
 }
 
 gint32
@@ -183,19 +187,23 @@ Mono_Posix_Syscall_sethostid (gint64 hostid)
 }
 #endif /* def HAVE_SETHOSTID */
 
+#ifdef HAVE_GETDOMAINNAME
 gint32
 Mono_Posix_Syscall_getdomainname (char *name, mph_size_t len)
 {
        mph_return_if_size_t_overflow (len);
        return getdomainname (name, (size_t) len);
 }
+#endif /* def HAVE_GETDOMAINNAME */
 
+#ifdef HAVE_SETDOMAINNAME
 gint32
 Mono_Posix_Syscall_setdomainname (const char *name, mph_size_t len)
 {
        mph_return_if_size_t_overflow (len);
        return setdomainname (name, (size_t) len);
 }
+#endif /* def HAVE_SETDOMAINNAME */
 
 gint32
 Mono_Posix_Syscall_truncate (const char *path, mph_off_t length)