mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	* error.c (report_bug): use a small message buffer instead of BUFSIZ.
It is needed for avoiding nested SIGSEGV on Linux. Note: BUFSIZ is not proper buffer size. It's unrelated with maximum filename length. :-/ [Bug #5139] [ruby-dev:44315] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
		
							parent
							
								
									1c647cc203
								
							
						
					
					
						commit
						3abbda4f6e
					
				
					 2 changed files with 11 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -1,3 +1,11 @@
 | 
			
		|||
Thu Aug  4 20:19:11 2011  KOSAKI Motohiro  <kosaki.motohiro@gmail.com>
 | 
			
		||||
 | 
			
		||||
	* error.c (report_bug): use a small message buffer instead of BUFSIZ.
 | 
			
		||||
	  It is needed for avoiding nested SIGSEGV on Linux.
 | 
			
		||||
	  Note: BUFSIZ is not proper buffer size. It's unrelated with maximum
 | 
			
		||||
	  filename length. :-/
 | 
			
		||||
	  [Bug #5139] [ruby-dev:44315]
 | 
			
		||||
 | 
			
		||||
Thu Aug  4 16:08:45 2011  Nobuyoshi Nakada  <nobu@ruby-lang.org>
 | 
			
		||||
 | 
			
		||||
	* tool/rbinstall.rb (gem): install all gemspecs under lib and ext.
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								error.c
									
										
									
									
									
								
							
							
						
						
									
										5
									
								
								error.c
									
										
									
									
									
								
							| 
						 | 
				
			
			@ -251,9 +251,10 @@ rb_warn_m(int argc, VALUE *argv, VALUE exc)
 | 
			
		|||
static void
 | 
			
		||||
report_bug(const char *file, int line, const char *fmt, va_list args)
 | 
			
		||||
{
 | 
			
		||||
    char buf[BUFSIZ];
 | 
			
		||||
    /* SIGSEGV handler might have a very small stack. Thus we need to use it carefully. */
 | 
			
		||||
    char buf[256];
 | 
			
		||||
    FILE *out = stderr;
 | 
			
		||||
    int len = err_position_0(buf, BUFSIZ, file, line);
 | 
			
		||||
    int len = err_position_0(buf, 256, file, line);
 | 
			
		||||
 | 
			
		||||
    if ((ssize_t)fwrite(buf, 1, len, out) == (ssize_t)len ||
 | 
			
		||||
	(ssize_t)fwrite(buf, 1, len, (out = stdout)) == (ssize_t)len) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue