* fhandler_process.cc (format_process_maps): Get destbuf argument by
reference. Allow resizing of destbuf as necessary. Fix string handling.
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | 2005-01-31  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
|  | 	* fhandler_process.cc (format_process_maps): Get destbuf argument by | ||||||
|  | 	reference.  Allow resizing of destbuf as necessary.  Fix string | ||||||
|  | 	handling. | ||||||
|  |  | ||||||
| 2005-01-31  Corinna Vinschen  <corinna@vinschen.de> | 2005-01-31  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
| 	* cygheap.h (class cygheap_fdenum): New class to enumerate used | 	* cygheap.h (class cygheap_fdenum): New class to enumerate used | ||||||
|   | |||||||
| @@ -81,7 +81,7 @@ static const char * const process_listing[] = | |||||||
| static const int PROCESS_LINK_COUNT = | static const int PROCESS_LINK_COUNT = | ||||||
|   (sizeof (process_listing) / sizeof (const char *)) - 1; |   (sizeof (process_listing) / sizeof (const char *)) - 1; | ||||||
|  |  | ||||||
| static _off64_t format_process_maps (_pinfo *p, char *destbuf, size_t maxsize); | static _off64_t format_process_maps (_pinfo *p, char *&destbuf, size_t maxsize); | ||||||
| static _off64_t format_process_stat (_pinfo *p, char *destbuf, size_t maxsize); | static _off64_t format_process_stat (_pinfo *p, char *destbuf, size_t maxsize); | ||||||
| static _off64_t format_process_status (_pinfo *p, char *destbuf, size_t maxsize); | static _off64_t format_process_status (_pinfo *p, char *destbuf, size_t maxsize); | ||||||
| static _off64_t format_process_statm (_pinfo *p, char *destbuf, size_t maxsize); | static _off64_t format_process_statm (_pinfo *p, char *destbuf, size_t maxsize); | ||||||
| @@ -474,7 +474,7 @@ fhandler_process::fill_filebuf () | |||||||
| } | } | ||||||
|  |  | ||||||
| static _off64_t | static _off64_t | ||||||
| format_process_maps (_pinfo *p, char *destbuf, size_t maxsize) | format_process_maps (_pinfo *p, char *&destbuf, size_t maxsize) | ||||||
| { | { | ||||||
|   if (!wincap.is_winnt ()) |   if (!wincap.is_winnt ()) | ||||||
|     return 0; |     return 0; | ||||||
| @@ -529,8 +529,8 @@ format_process_maps (_pinfo *p, char *destbuf, size_t maxsize) | |||||||
| 	    st.st_dev = 0; | 	    st.st_dev = 0; | ||||||
| 	    st.st_ino = 0; | 	    st.st_ino = 0; | ||||||
| 	  } | 	  } | ||||||
| 	if (len + strlen (posix_modname) + 50 > maxsize - 1) | 	if (len + strlen (posix_modname) + 62 > maxsize - 1) | ||||||
| 	  break; | 	  destbuf = (char *) realloc (destbuf, maxsize += 2048); | ||||||
| 	if (workingset) | 	if (workingset) | ||||||
| 	  for (unsigned i = 1; i <= wset_size; ++i) | 	  for (unsigned i = 1; i <= wset_size; ++i) | ||||||
| 	    { | 	    { | ||||||
| @@ -554,9 +554,9 @@ format_process_maps (_pinfo *p, char *destbuf, size_t maxsize) | |||||||
| 				st.st_dev >> 16, | 				st.st_dev >> 16, | ||||||
| 				st.st_dev & 0xffff, | 				st.st_dev & 0xffff, | ||||||
| 				st.st_ino); | 				st.st_ino); | ||||||
| 	while (written++ < 61) | 	while (written < 62) | ||||||
| 	  destbuf[len + written] = ' '; | 	  destbuf[len + written++] = ' '; | ||||||
|         len += written - 1; |         len += written; | ||||||
| 	len += __small_sprintf (destbuf + len, "%s\n", posix_modname); | 	len += __small_sprintf (destbuf + len, "%s\n", posix_modname); | ||||||
|       } |       } | ||||||
| out: | out: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user