mirror of
https://github.com/gnif/LookingGlass.git
synced 2024-11-10 00:28:20 +00:00
[common] numerious bad usage bug fixes
This commit is contained in:
parent
76fa390e3d
commit
22f04a926f
@ -32,4 +32,5 @@ struct IVSHMEM
|
||||
|
||||
void ivshmemOptionsInit();
|
||||
bool ivshmemOpen(struct IVSHMEM * dev);
|
||||
bool ivshmemOpenDev(struct IVSHMEM * dev, const char * shmDev);
|
||||
void ivshmemClose(struct IVSHMEM * dev);
|
@ -18,4 +18,5 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*/
|
||||
|
||||
// sprintf but with buffer allocation
|
||||
int alloc_sprintf(char ** str, const char * format, ...);
|
||||
int alloc_sprintf(char ** str, const char * format, ...)
|
||||
__attribute__ ((format (printf, 2, 3)));
|
@ -600,7 +600,7 @@ void option_print()
|
||||
maxLen = alloc_sprintf(
|
||||
&line,
|
||||
"%-*s | Short | %-*s | Description",
|
||||
strlen(state.groups[g].module) + state.groups[g].pad + 1,
|
||||
(int)(strlen(state.groups[g].module) + state.groups[g].pad + 1),
|
||||
"Long",
|
||||
valueLen,
|
||||
"Value"
|
||||
|
@ -17,4 +17,7 @@ if(ENABLE_BACKTRACE)
|
||||
target_link_libraries(lg_common_platform_code bfd)
|
||||
endif()
|
||||
|
||||
target_link_libraries(lg_common_platform_code pthread)
|
||||
target_link_libraries(lg_common_platform_code
|
||||
lg_common
|
||||
pthread
|
||||
)
|
||||
|
@ -42,7 +42,6 @@ static int uioOpenFile(const char * shmDevice, const char * file)
|
||||
{
|
||||
char * path;
|
||||
alloc_sprintf(&path, "/sys/class/uio/%s/%s", shmDevice, file);
|
||||
|
||||
int fd = open(path, O_RDONLY);
|
||||
if (fd < 0)
|
||||
{
|
||||
@ -161,10 +160,14 @@ void ivshmemOptionsInit()
|
||||
}
|
||||
|
||||
bool ivshmemOpen(struct IVSHMEM * dev)
|
||||
{
|
||||
return ivshmemOpenDev(dev, option_get_string("app", "shmFile"));
|
||||
}
|
||||
|
||||
bool ivshmemOpenDev(struct IVSHMEM * dev, const char * shmDevice)
|
||||
{
|
||||
assert(dev);
|
||||
|
||||
const char * shmDevice = option_get_string("app", "shmFile");
|
||||
unsigned int devSize;
|
||||
int devFD;
|
||||
|
||||
@ -257,5 +260,7 @@ void ivshmemClose(struct IVSHMEM * dev)
|
||||
close(info->fd);
|
||||
|
||||
free(info);
|
||||
dev->mem = NULL;
|
||||
dev->size = 0;
|
||||
dev->opaque = NULL;
|
||||
}
|
@ -15,5 +15,6 @@ add_library(lg_common_platform_code STATIC
|
||||
)
|
||||
|
||||
target_link_libraries(lg_common_platform_code
|
||||
lg_common
|
||||
setupapi
|
||||
)
|
||||
|
@ -21,26 +21,24 @@ Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
#include <stdlib.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
int alloc_sprintf(char ** str, const char * format, ...)
|
||||
static int valloc_sprintf(char ** str, const char * format, va_list ap)
|
||||
{
|
||||
if (!str)
|
||||
return -1;
|
||||
|
||||
*str = NULL;
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
int len = vsnprintf(NULL, 0, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
va_list ap1;
|
||||
va_copy(ap1, ap);
|
||||
int len = vsnprintf(NULL, 0, format, ap1);
|
||||
va_end(ap1);
|
||||
|
||||
if (len < 0)
|
||||
return len;
|
||||
|
||||
*str = malloc(len+1);
|
||||
|
||||
va_start(ap, format);
|
||||
int ret = vsnprintf(*str, len + 1, format, ap);
|
||||
va_end(ap);
|
||||
|
||||
if (ret < 0)
|
||||
{
|
||||
free(*str);
|
||||
@ -50,3 +48,12 @@ int alloc_sprintf(char ** str, const char * format, ...)
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int alloc_sprintf(char ** str, const char * format, ...)
|
||||
{
|
||||
va_list ap;
|
||||
va_start(ap, format);
|
||||
int ret = valloc_sprintf(str, format, ap);
|
||||
va_end(ap);
|
||||
return ret;
|
||||
}
|
Loading…
Reference in New Issue
Block a user