This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: nightly test result of systemtap in ppc64


I committed a fix - please see if it works for you now.

Josh


On Tuesday, May 09, 2006 11:30 AM, Hien Nguyen wrote:
> Stone, Joshua I wrote:
> 
>> On Tuesday, May 09, 2006 11:02 AM, Hien Nguyen wrote:
>> 
>> 
>>> I initialized *ptr=NULL to get pass the compiler.
>>> 
>>> 
>> 
>> Sure, but I would like to know why that error was reported in the
>> first place.  As far as I can see, there's no way for 'ptr' to be
>> used uninitialized.  If I'm missing something, then your fix just
>> means that we'll induce a NULL dereference if there's a problem.
>> 
>> 
>> Josh
>> 
>> 
> Here it is
> 46121 void function_probefunc (struct context* __restrict__ c) {
>   46122   struct function_probefunc_locals *  __restrict__ l =
>   46123     & c->locals[c->nesting].function_probefunc;
>   46124   (void) l;
>   46125   #define CONTEXT c
>   46126   #define THIS l
>   46127   if (0) goto out;
>   46128   l->__retvalue[0] = '\0';
>   46129   {
>   46130      /* pure */
>   46131         char *dst, *ptr, *start;
>   46132         String str;
>   46133         int len = MAXSTRINGLEN;
>   46134
>   46135         start = strstr(CONTEXT->probe_point, "function(\"");
>   46136         if (start) {
>   46137                 ptr = start + 10;
>   46138         } else {
>   46139                 start = strstr(CONTEXT->probe_point,
>   "inline(\""); 46140                 if (start) {
>   46141                         ptr = start + 8;
>   46142                 }
>   46143         }
>   46144         if (start) {
>   46145                 dst = THIS->__retvalue;
>   46146                 while (*ptr != '@' && --len > 0 && *ptr)
>   46147                         *dst++ = *ptr++;
>   46148                 *dst = 0;
>   46149                 goto out;
>   46150         }
>   46151         if (CONTEXT->regs) {
>   46152                 str  = _stp_string_init (0);
>   46153                 _stp_symbol_sprint(str,
>   REG_IP(CONTEXT->regs)); 46154                 start =
>   strstr(_stp_string_ptr(str), " : "); 46155                 if
>   (start) { 46156                         dst = THIS->__retvalue;
>   46157                         ptr = start+3;
>   46158                         while (*ptr != '+' && --len > 0 &&
>   *ptr) 46159                                 *dst++ = *ptr++;
>   46160                         *dst = 0;
>   46161                 }
>   46162                 else {
>   46163                         strlcpy(THIS->__retvalue,
> _stp_string_ptr(str),M        AXSTRINGLEN);
>   46164                 }
>   46165                 goto out;
>   46166         }
>   46167         THIS->__retvalue[0] = '\0';
>   46168
>   46169   }


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]