absolutePathFromBaseFile: avoid an unnecessary use of assert

* src/util/storage_file.c (absolutePathFromBaseFile): While this use
of virAsprintf is slightly cleaner than using stpncpy(stpcpy(...,
it does impose an artificial limitation on the length of the base_file
name.  Rather than asserting that it does not exceed INT_MAX, return
NULL when it does.
This commit is contained in:
Jim Meyering 2010-02-10 11:54:24 +01:00
parent 69cf62adac
commit e3042683bd

View File

@ -26,7 +26,6 @@
#include <unistd.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include <assert.h>
#include "dirname.h" #include "dirname.h"
#include "ignore-value.h" #include "ignore-value.h"
#include "memory.h" #include "memory.h"
@ -251,7 +250,8 @@ absolutePathFromBaseFile(const char *base_file, const char *path)
return strdup(path); return strdup(path);
/* Ensure that the following cast-to-int is valid. */ /* Ensure that the following cast-to-int is valid. */
assert (d_len <= INT_MAX); if (d_len > INT_MAX)
return NULL;
ignore_value(virAsprintf(&res, "%.*s/%s", (int) d_len, base_file, path)); ignore_value(virAsprintf(&res, "%.*s/%s", (int) d_len, base_file, path));
return res; return res;