From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25796 invoked by alias); 8 Oct 2008 21:06:17 -0000 Received: (qmail 25778 invoked by uid 22791); 8 Oct 2008 21:06:15 -0000 X-Spam-Check-By: sourceware.org Received: from smtp-outbound-1.vmware.com (HELO smtp-outbound-1.vmware.com) (65.113.40.141) by sourceware.org (qpsmtpd/0.31) with ESMTP; Wed, 08 Oct 2008 21:05:40 +0000 Received: from mailhost3.vmware.com (mailhost3.vmware.com [10.16.27.45]) by smtp-outbound-1.vmware.com (Postfix) with ESMTP id 9A6AD6AB1; Wed, 8 Oct 2008 14:05:38 -0700 (PDT) Received: from [10.20.92.59] (promb-2s-dhcp59.eng.vmware.com [10.20.92.59]) by mailhost3.vmware.com (Postfix) with ESMTP id C3035C9A22; Wed, 8 Oct 2008 14:05:38 -0700 (PDT) Message-ID: <48ED201F.6040905@vmware.com> Date: Wed, 08 Oct 2008 21:06:00 -0000 From: Michael Snyder User-Agent: Thunderbird 1.5.0.12 (X11/20080411) MIME-Version: 1.0 To: Thiago Jung Bauermann CC: "gdb-patches@sourceware.org" Subject: Re: [RFA] Resubmit reverse debugging [5/5] References: <48EC18F9.8040105@vmware.com> <1223489663.19088.43.camel@localhost.localdomain> In-Reply-To: <1223489663.19088.43.camel@localhost.localdomain> Content-Type: multipart/mixed; boundary="------------000006070309050709050907" X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2008-10/txt/msg00259.txt.bz2 This is a multi-part message in MIME format. --------------000006070309050709050907 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Content-length: 764 Thiago Jung Bauermann wrote: > El mar, 07-10-2008 a las 19:20 -0700, Michael Snyder escribió: >> +static void >> +exec_reverse_once (char *cmd, char *args, int from_tty) >> +{ >> + /* String buffer for command consing. */ >> + char reverse_command[512]; > >> + sprintf (reverse_command, "%s %s", cmd, args ? args : ""); >> + >> + execution_direction = EXEC_REVERSE; >> + execute_command (reverse_command, from_tty); >> + do_cleanups (old_chain); > > That fixed-length buffer being written with sprintf doesn't look good... > What do you think about using xstrprintf instead? That will remove the > possibility of buffer overflow, and also remove an arbitrary limit. How about this? (the function pointer idea I leave for a future enhancement): --------------000006070309050709050907 Content-Type: text/plain; name="xstrprintf.txt" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="xstrprintf.txt" Content-length: 1521 SW5kZXg6IHJldmVyc2UuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBm aWxlOiAvY3ZzL3NyYy9zcmMvZ2RiL0F0dGljL3JldmVyc2UuYyx2CnJldHJp ZXZpbmcgcmV2aXNpb24gMS4xLjEwLjYKZGlmZiAtdSAtcCAtcjEuMS4xMC42 IHJldmVyc2UuYwotLS0gcmV2ZXJzZS5jCTggT2N0IDIwMDggMDA6MjY6Mjgg LTAwMDAJMS4xLjEwLjYKKysrIHJldmVyc2UuYwk4IE9jdCAyMDA4IDIxOjAz OjU5IC0wMDAwCkBAIC00NCw4ICs0NCw3IEBAIHN0YXRpYyB2b2lkIGV4ZWNf ZGlyZWN0aW9uX2RlZmF1bHQgKHZvaWQKIHN0YXRpYyB2b2lkCiBleGVjX3Jl dmVyc2Vfb25jZSAoY2hhciAqY21kLCBjaGFyICphcmdzLCBpbnQgZnJvbV90 dHkpCiB7Ci0gIC8qIFN0cmluZyBidWZmZXIgZm9yIGNvbW1hbmQgY29uc2lu Zy4gICovCi0gIGNoYXIgcmV2ZXJzZV9jb21tYW5kWzUxMl07CisgIGNoYXIg KnJldmVyc2VfY29tbWFuZDsKICAgZW51bSBleGVjX2RpcmVjdGlvbl9raW5k IGRpciA9IGV4ZWN1dGlvbl9kaXJlY3Rpb247CiAgIHN0cnVjdCBjbGVhbnVw ICpvbGRfY2hhaW47CiAKQEAgLTU5LDkgKzU4LDkgQEAgZXhlY19yZXZlcnNl X29uY2UgKGNoYXIgKmNtZCwgY2hhciAqYXJncwogICBpZiAoIXRhcmdldF9j YW5fZXhlY3V0ZV9yZXZlcnNlKQogICAgIGVycm9yIChfKCJUYXJnZXQgJXMg ZG9lcyBub3Qgc3VwcG9ydCB0aGlzIGNvbW1hbmQuIiksIHRhcmdldF9zaG9y dG5hbWUpOwogCisgIHJldmVyc2VfY29tbWFuZCA9IHhzdHJwcmludGYgKCIl cyAlcyIsIGNtZCwgYXJncyA/IGFyZ3MgOiAiIik7CiAgIG9sZF9jaGFpbiA9 IG1ha2VfY2xlYW51cCAoZXhlY19kaXJlY3Rpb25fZGVmYXVsdCwgTlVMTCk7 Ci0gIHNwcmludGYgKHJldmVyc2VfY29tbWFuZCwgIiVzICVzIiwgY21kLCBh cmdzID8gYXJncyA6ICIiKTsKLQorICBtYWtlX2NsZWFudXAgKHhmcmVlLCBy ZXZlcnNlX2NvbW1hbmQpOwogICBleGVjdXRpb25fZGlyZWN0aW9uID0gRVhF Q19SRVZFUlNFOwogICBleGVjdXRlX2NvbW1hbmQgKHJldmVyc2VfY29tbWFu ZCwgZnJvbV90dHkpOwogICBkb19jbGVhbnVwcyAob2xkX2NoYWluKTsK --------------000006070309050709050907--