diff mbox

[v1,1/1] hexdump: Add null guard on output file.

Message ID fcfc06335c0f3eaecacd2ac8396c232142ff4774.1406707320.git.peter.crosthwaite@xilinx.com
State New
Headers show

Commit Message

Peter Crosthwaite July 31, 2014, 12:31 a.m. UTC
To avoid callsites with optional output having to NULL guard.

Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
---
Noting in-tree is affected by this yet, but I though I'd get this
out of the way straight-up rather than elongate other series.

 util/hexdump.c | 3 +++
 1 file changed, 3 insertions(+)

Comments

Michael Tokarev Aug. 2, 2014, 1:26 p.m. UTC | #1
31.07.2014 04:31, Peter Crosthwaite wrote:
> To avoid callsites with optional output having to NULL guard.

Isn't it a bit backwards?  If we don't need output, maybe we should
not call hexdump in the first place?

Thanks,

/mjt

> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
> ---
> Noting in-tree is affected by this yet, but I though I'd get this
> out of the way straight-up rather than elongate other series.
> 
>  util/hexdump.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/util/hexdump.c b/util/hexdump.c
> index 969b340..b607236 100644
> --- a/util/hexdump.c
> +++ b/util/hexdump.c
> @@ -19,6 +19,9 @@ void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size)
>  {
>      unsigned int b;
>  
> +    if (!fp) {
> +        return;
> +    }
>      for (b = 0; b < size; b++) {
>          if ((b % 16) == 0) {
>              fprintf(fp, "%s: %04x:", prefix, b);
>
Peter Crosthwaite Aug. 3, 2014, 1:14 a.m. UTC | #2
On Sat, Aug 2, 2014 at 11:26 PM, Michael Tokarev <mjt@tls.msk.ru> wrote:
> 31.07.2014 04:31, Peter Crosthwaite wrote:
>> To avoid callsites with optional output having to NULL guard.
>
> Isn't it a bit backwards?  If we don't need output, maybe we should
> not call hexdump in the first place?
>

Well my thinking is a NULL File * is a good way to "don't need output"
and then it means then the multiple callsites can avoid:


if (fp) {


Note that many of the exitinst



> Thanks,
>
> /mjt
>
>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>> ---
>> Noting in-tree is affected by this yet, but I though I'd get this
>> out of the way straight-up rather than elongate other series.
>>
>>  util/hexdump.c | 3 +++
>>  1 file changed, 3 insertions(+)
>>
>> diff --git a/util/hexdump.c b/util/hexdump.c
>> index 969b340..b607236 100644
>> --- a/util/hexdump.c
>> +++ b/util/hexdump.c
>> @@ -19,6 +19,9 @@ void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size)
>>  {
>>      unsigned int b;
>>
>> +    if (!fp) {
>> +        return;
>> +    }
>>      for (b = 0; b < size; b++) {
>>          if ((b % 16) == 0) {
>>              fprintf(fp, "%s: %04x:", prefix, b);
>>
>
>
Peter Crosthwaite Aug. 3, 2014, 1:15 a.m. UTC | #3
Sorry premature send (I guess I just discovered a new keyboard shortcut!)

On Sun, Aug 3, 2014 at 11:14 AM, Peter Crosthwaite
<peter.crosthwaite@xilinx.com> wrote:
> On Sat, Aug 2, 2014 at 11:26 PM, Michael Tokarev <mjt@tls.msk.ru> wrote:
>> 31.07.2014 04:31, Peter Crosthwaite wrote:
>>> To avoid callsites with optional output having to NULL guard.
>>
>> Isn't it a bit backwards?  If we don't need output, maybe we should
>> not call hexdump in the first place?
>>
>
> Well my thinking is a NULL File * is a good way to "don't need output"
> and then it means then the multiple callsites can avoid:
>
>
> if (fp) {
>
>
> Note that many of the exitinst
>
>
>
>> Thanks,
>>
>> /mjt
>>
>>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>> ---
>>> Noting in-tree is affected by this yet, but I though I'd get this
>>> out of the way straight-up rather than elongate other series.
>>>
>>>  util/hexdump.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/util/hexdump.c b/util/hexdump.c
>>> index 969b340..b607236 100644
>>> --- a/util/hexdump.c
>>> +++ b/util/hexdump.c
>>> @@ -19,6 +19,9 @@ void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size)
>>>  {
>>>      unsigned int b;
>>>
>>> +    if (!fp) {
>>> +        return;
>>> +    }
>>>      for (b = 0; b < size; b++) {
>>>          if ((b % 16) == 0) {
>>>              fprintf(fp, "%s: %04x:", prefix, b);
>>>
>>
>>
Peter Crosthwaite Aug. 3, 2014, 1:17 a.m. UTC | #4
On Sun, Aug 3, 2014 at 11:14 AM, Peter Crosthwaite
<peter.crosthwaite@xilinx.com> wrote:
> On Sat, Aug 2, 2014 at 11:26 PM, Michael Tokarev <mjt@tls.msk.ru> wrote:
>> 31.07.2014 04:31, Peter Crosthwaite wrote:
>>> To avoid callsites with optional output having to NULL guard.
>>
>> Isn't it a bit backwards?  If we don't need output, maybe we should
>> not call hexdump in the first place?
>>
>
Well my thinking is a NULL File * is a good way to "don't need output"
and then it means then the multiple callsites can avoid:

if (fp) {
    qemu_hexdump(foo, fp, ..)
}

Note that many of the existing call this with stderr as FP argument
which in theory should be change to something that backs onto
qemu_log. I suspect the file handle in this case will be NULL when
logging is disabled and this patch avoid having to add all these
conditionals.

Regards,
Peter

>> Thanks,
>>
>> /mjt
>>
>>> Signed-off-by: Peter Crosthwaite <peter.crosthwaite@xilinx.com>
>>> ---
>>> Noting in-tree is affected by this yet, but I though I'd get this
>>> out of the way straight-up rather than elongate other series.
>>>
>>>  util/hexdump.c | 3 +++
>>>  1 file changed, 3 insertions(+)
>>>
>>> diff --git a/util/hexdump.c b/util/hexdump.c
>>> index 969b340..b607236 100644
>>> --- a/util/hexdump.c
>>> +++ b/util/hexdump.c
>>> @@ -19,6 +19,9 @@ void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size)
>>>  {
>>>      unsigned int b;
>>>
>>> +    if (!fp) {
>>> +        return;
>>> +    }
>>>      for (b = 0; b < size; b++) {
>>>          if ((b % 16) == 0) {
>>>              fprintf(fp, "%s: %04x:", prefix, b);
>>>
>>
>>
Peter Maydell Aug. 3, 2014, 1:11 p.m. UTC | #5
On 3 August 2014 02:17, Peter Crosthwaite <peter.crosthwaite@xilinx.com> wrote:
> Note that many of the existing call this with stderr as FP argument
> which in theory should be change to something that backs onto
> qemu_log. I suspect the file handle in this case will be NULL when
> logging is disabled and this patch avoid having to add all these
> conditionals.

For the qemu_log case we should handle the "don't log" condition
in the qemu_log() wrapper, especially since we probably want the
wrapper to take a log-mask anyway.

thanks
-- PMM
diff mbox

Patch

diff --git a/util/hexdump.c b/util/hexdump.c
index 969b340..b607236 100644
--- a/util/hexdump.c
+++ b/util/hexdump.c
@@ -19,6 +19,9 @@  void qemu_hexdump(const char *buf, FILE *fp, const char *prefix, size_t size)
 {
     unsigned int b;
 
+    if (!fp) {
+        return;
+    }
     for (b = 0; b < size; b++) {
         if ((b % 16) == 0) {
             fprintf(fp, "%s: %04x:", prefix, b);