Bugid : 6344436 Synopsis : *mv* gives cryptic error when applied to unix domain sockets Category/Subcategory : utility:file
Path : /solarisws/usr/src/cmd/mv/mv.c this problem exist for unix domain sockets since 'mknod' (used in mv.c) cannot create socket files. value for S_IFSOCK = 49152(int) = c000(hex) fix is, to check whether the file is a unix domain socket or not. ____________________________________________________________________________________________________ bash-3.00# diff -u mv.c.org mv.c --- mv.c.org Tue Oct 2 20:15:24 2007 +++ mv.c Sat Dec 29 11:15:49 2007 @@ -898,11 +898,21 @@ } goto cleanup; } - (void) fprintf(stderr, - gettext("%s: %s: unknown file type 0x%x\n"), cmd, - source, (s1.st_mode & S_IFMT)); - return (1); + if (( st.st_mode & S_IFMT) == S_IFSOCK) { + (void) fprintf(stderr, + gettext("%s: %s: cannot create unix socket file \n"), cmd, source); + + return (1); + } + else { + (void) fprintf(stderr, + gettext("%s: %s: unknown file type 0x%x\n"), cmd, + source, (s1.st_mode & S_IFMT)); + + return (1); + } + cleanup: if (unlink(source) < 0) { (void) unlink(target); ------------------------------------------------------------------------------------------------------- -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.opensolaris.org/pipermail/request-sponsor/attachments/20080107/9c722991/attachment.html>