* fhandler.h (fhandler_process::pid): New field.
(fhandler_process::fstat): Remove unneeded array. Set pid element. (fhandler_process::open): Ditto. (fhandler_process::fill_filebuf): Handle case where 'p' field is NULL.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| 2002-06-30  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* fhandler.h (fhandler_process::pid): New field. | ||||
| 	(fhandler_process::fstat): Remove unneeded array.  Set pid element. | ||||
| 	(fhandler_process::open): Ditto. | ||||
| 	(fhandler_process::fill_filebuf): Handle case where 'p' field is NULL. | ||||
|  | ||||
| 2002-06-30  Christopher Faylor  <cgf@redhat.com> | ||||
|  | ||||
| 	* fhandler.h (fhandler_process::p): New field. | ||||
|   | ||||
| @@ -1107,7 +1107,6 @@ class fhandler_proc: public fhandler_virtual | ||||
|   void fill_filebuf (); | ||||
| }; | ||||
|  | ||||
| class pinfo; | ||||
| class fhandler_registry: public fhandler_proc | ||||
| { | ||||
|  public: | ||||
| @@ -1125,9 +1124,10 @@ class fhandler_registry: public fhandler_proc | ||||
|   void fill_filebuf (); | ||||
| }; | ||||
|  | ||||
| struct _pinfo; | ||||
| class pinfo; | ||||
| class fhandler_process: public fhandler_proc | ||||
| { | ||||
|   pid_t pid; | ||||
|   pinfo *p; | ||||
|  public: | ||||
|   fhandler_process (); | ||||
|   | ||||
| @@ -100,12 +100,11 @@ fhandler_process::fstat (struct __stat64 *buf, path_conv *pc) | ||||
|   int file_type = exists (); | ||||
|   (void) fhandler_base::fstat (buf, pc); | ||||
|   path += proc_len + 1; | ||||
|   int pid = atoi (path); | ||||
|   winpids pids; | ||||
|   pid = atoi (path); | ||||
|   pinfo p (pid); | ||||
|   if (!p) | ||||
|     { | ||||
|       set_errno(ENOENT); | ||||
|       set_errno (ENOENT); | ||||
|       return -1; | ||||
|     } | ||||
|  | ||||
| @@ -154,8 +153,7 @@ fhandler_process::readdir (DIR * dir) | ||||
| int | ||||
| fhandler_process::open (path_conv *pc, int flags, mode_t mode) | ||||
| { | ||||
|   int process_file_no = -1, pid; | ||||
|   winpids pids; | ||||
|   int process_file_no = -1; | ||||
|  | ||||
|   int res = fhandler_virtual::open (pc, flags, mode); | ||||
|   if (!res) | ||||
| @@ -249,6 +247,17 @@ out: | ||||
| void | ||||
| fhandler_process::fill_filebuf () | ||||
| { | ||||
|   pinfo pmaybe; | ||||
|  | ||||
|   if (!p) | ||||
|     { | ||||
|       pmaybe.init (pid); | ||||
|       p = &pmaybe; | ||||
|     } | ||||
|  | ||||
|   if (!p) | ||||
|     return; | ||||
|  | ||||
|   switch (fileid) | ||||
|     { | ||||
|     case PROCESS_UID: | ||||
| @@ -349,6 +358,9 @@ fhandler_process::fill_filebuf () | ||||
| 	break; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|   if (p == &pmaybe) | ||||
|     p = NULL; | ||||
| } | ||||
|  | ||||
| static | ||||
|   | ||||
		Reference in New Issue
	
	Block a user