All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anthony Liguori <aliguori@us.ibm.com>
To: Jerone Young <jyoung5@us.ibm.com>
Cc: xen-devel <xen-devel@lists.xensource.com>
Subject: Re: [PATCH] Fix random segfaults in with xm top
Date: Mon, 28 Nov 2005 13:31:19 -0600	[thread overview]
Message-ID: <438B5B07.2020006@us.ibm.com> (raw)
In-Reply-To: <1133205363.2682.3.camel@laptop>

Jerone Young wrote:

>On Wed, 2005-11-23 at 17:40 -0600, Anthony Liguori wrote:
>  
>
>>Unfortunately, this patch introduces another potential segfault from an 
>>unterminated string.  See below for how to fix.
>>    
>>
>
>Actually I believe this is not true as I am assigning a character and
>not a character string. You do not need to null terminate a character.
>Doesn't really matter both accomplish the same thing. Using the function
>is better anyway.
>  
>
But name is a string and is being accessed as a string :-)  You're 
allocating 1 byte for it so when printf attempts to print out the string 
it will overrun the buffer.

Regards,

Anthony Liguori

>>Jerone Young wrote:
>>
>>    
>>
>>># HG changeset patch
>>># User root@leaf1
>>># Node ID 7ce2dfd820e39c7764f276a785415014a7954861
>>># Parent  14d733e5e1d014e302d72fb78df1428ee08e3ce3
>>>* fix random segfaults in xentop by never returning null
>>>* remove xenstore transcations (not needed).
>>>
>>>diff -r 14d733e5e1d0 -r 7ce2dfd820e3 tools/xenstat/libxenstat/src/xenstat.c
>>>--- a/tools/xenstat/libxenstat/src/xenstat.c	Wed Nov 23 13:15:35 2005
>>>+++ b/tools/xenstat/libxenstat/src/xenstat.c	Wed Nov 23 19:17:11 2005
>>>@@ -702,19 +702,16 @@
>>>{
>>>	char path[80];
>>>	char *name;
>>>-	struct xs_transaction_handle *xstranshandle;
>>>
>>>	snprintf(path, sizeof(path),"/local/domain/%i/name", domain_id);
>>>	
>>>-	xstranshandle = xs_transaction_start(handle->xshandle);
>>>-	if (xstranshandle == NULL) {
>>>-		perror("Unable to get transcation handle from xenstore\n");
>>>-		exit(1); /* Change this */
>>>-	}
>>>-
>>>-	name = (char *) xs_read(handle->xshandle, xstranshandle, path, NULL);
>>>+	name = (char *) xs_read(handle->xshandle, NULL, path, NULL);
>>>	
>>>-	xs_transaction_end(handle->xshandle, xstranshandle, false);
>>>+	if (name == NULL)
>>>+	{
>>>+		name = (char *)malloc((size_t)sizeof(char));
>>>+		name[0] = ' ';
>>>+	}	 
>>> 
>>>
>>>      
>>>
>>-		name = (char *)malloc((size_t)sizeof(char));
>>-		name[0] = ' ';
>>+               name = malloc(2);
>>+		name[0] = ' ';
>>+		name[1] = 0;
>>
>>Or better yet:
>>
>>-		name = (char *)malloc((size_t)sizeof(char));
>>-		name[0] = ' ';
>>+		name = strdup(" ");
>>
>>Regards,
>>
>>Anthony Liguori
>>
>>    
>>
>>> 
>>>
>>>	return name;
>>>}	
>>> 
>>>
>>>------------------------------------------------------------------------
>>>
>>>_______________________________________________
>>>Xen-devel mailing list
>>>Xen-devel@lists.xensource.com
>>>http://lists.xensource.com/xen-devel
>>> 
>>>
>>>      
>>>
>>_______________________________________________
>>Xen-devel mailing list
>>Xen-devel@lists.xensource.com
>>http://lists.xensource.com/xen-devel
>>
>>    
>>
>
>
>  
>

      reply	other threads:[~2005-11-28 19:31 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-23 18:18 [PATCH] Fix random segfaults in with xm top Jerone Young
2005-11-23 23:40 ` Anthony Liguori
2005-11-28 19:16   ` Jerone Young
2005-11-28 19:31     ` Anthony Liguori [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=438B5B07.2020006@us.ibm.com \
    --to=aliguori@us.ibm.com \
    --cc=jyoung5@us.ibm.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.