/[muddleftpd]/muddleftpd/src/utils.c
ViewVC logotype

Diff of /muddleftpd/src/utils.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.2 by rugger, Tue Apr 15 10:04:35 2003 UTC revision 1.3 by rugger, Sun Nov 2 13:06:10 2003 UTC
# Line 183  int strchrcount(char *string, char tok) Line 183  int strchrcount(char *string, char tok)
183          return(ret);          return(ret);
184  }  }
185    
186  char *safe_vsnprintf(char *format, va_list ap)  char *safe_vsnprintf(int size, char *format, va_list ap)
187  {  {
188          int size = BUFFSMALL;          char *buffer = mallocwrapper(size+1);
         char *buffer = mallocwrapper(size);  
189          int result;          int result;
190                    
191          result = vsnprintf(buffer, size, format, ap);          result = vsnprintf(buffer, size+1, format, ap);
         if (result >= size)  
         {  
                 reallocwrapper(result+1, (void *)&buffer);  
                 result = vsnprintf(buffer, result+1, format, ap);  
         }  
           
192          return(buffer);          return(buffer);
193  }  }
194    
195  char *safe_snprintf(char *format, ...)  char *safe_snprintf(char *format, ...)
196  {  {
197          va_list printfargs;          va_list printfargs;
198          char *buf;          int size = BUFFSMALL;
199                    char *buf = mallocwrapper(size);
200            int result;
201    
202          va_start(printfargs, format);          va_start(printfargs, format);
203          buf = safe_vsnprintf(format, printfargs);          result = vsnprintf(buf, size, format, printfargs);
204          va_end(printfargs);          va_end(printfargs);
205                    
206            if (result >= size)
207            {
208                    reallocwrapper(result+1, (void *)&buf);
209                    va_start(printfargs, format);
210                    result = vsnprintf(buf, result+1, format, printfargs);
211                    va_end(printfargs);
212            }
213          return(buf);          return(buf);
214  }  }
215    

Legend:
Removed from v.1.2  
changed lines
  Added in v.1.3

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26