Bug in accessing via snprintf a NULL string.

This commit is contained in:
rocky
2005-01-18 03:03:56 +00:00
parent f1a3c2f51c
commit 00dfa4d39a

View File

@@ -1,5 +1,5 @@
/*
$Id: scan_devices.c,v 1.12 2005/01/15 16:05:44 rocky Exp $
$Id: scan_devices.c,v 1.13 2005/01/18 03:03:56 rocky Exp $
Copyright (C) 2004, 2005 Rocky Bernstein <rocky@panix.com>
Copyright (C) 1998 Monty xiphmont@mit.edu
@@ -254,16 +254,23 @@ cdda_identify_cooked(const char *dev, int messagedest, char **messages)
if ( scsi_mmc_get_hwinfo( p_cdio, &hw_info ) ) {
unsigned int i_len = strlen(hw_info.psz_vendor)
+ strlen(hw_info.psz_model)
+ strlen(hw_info.psz_revision)
+ strlen(description) + 3;
d->drive_model=malloc( i_len );
snprintf( d->drive_model, i_len, "%s%s%s %s",
hw_info.psz_vendor, hw_info.psz_model, hw_info.psz_revision,
description );
+ strlen(hw_info.psz_revision) + 3;
if (description) {
i_len += strlen(description);
d->drive_model=malloc( i_len );
snprintf( d->drive_model, i_len, "%s%s%s %s",
hw_info.psz_vendor, hw_info.psz_model, hw_info.psz_revision,
description );
free(description);
} else {
d->drive_model=malloc( i_len );
snprintf( d->drive_model, i_len, "%s%s%s",
hw_info.psz_vendor, hw_info.psz_model, hw_info.psz_revision
);
}
idmessage(messagedest,messages,"\t\tCDROM sensed: %s\n",
d->drive_model);
if (description) free(description);
}
}