svn commit: r224915 - head/sys/fs/procfs

Konstantin Belousov kib at FreeBSD.org
Tue Aug 16 20:13:17 UTC 2011


Author: kib
Date: Tue Aug 16 20:13:17 2011
New Revision: 224915
URL: http://svn.freebsd.org/changeset/base/224915

Log:
  Do not return success and a string "unknown" when vn_fullpath() was unable
  to resolve the path of the text vnode of the process. The behaviour is
  very confusing for any consumer of the procfs, in particular, java.
  
  Reported and tested by:	bf
  MFC after:	2 weeks
  Approved by:	re (bz)

Modified:
  head/sys/fs/procfs/procfs.c

Modified: head/sys/fs/procfs/procfs.c
==============================================================================
--- head/sys/fs/procfs/procfs.c	Tue Aug 16 20:07:47 2011	(r224914)
+++ head/sys/fs/procfs/procfs.c	Tue Aug 16 20:13:17 2011	(r224915)
@@ -67,20 +67,23 @@
 int
 procfs_doprocfile(PFS_FILL_ARGS)
 {
-	char *fullpath = "unknown";
-	char *freepath = NULL;
+	char *fullpath;
+	char *freepath;
 	struct vnode *textvp;
+	int error;
 
+	freepath = NULL;
 	PROC_LOCK(p);
 	textvp = p->p_textvp;
 	vhold(textvp);
 	PROC_UNLOCK(p);
-	vn_fullpath(td, textvp, &fullpath, &freepath);
+	error = vn_fullpath(td, textvp, &fullpath, &freepath);
 	vdrop(textvp);
-	sbuf_printf(sb, "%s", fullpath);
-	if (freepath)
+	if (error == 0)
+		sbuf_printf(sb, "%s", fullpath);
+	if (freepath != NULL)
 		free(freepath, M_TEMP);
-	return (0);
+	return (error);
 }
 
 /*


More information about the svn-src-all mailing list