From 543f34b80095d2819eb9500c84e7c07f2d22d0be Mon Sep 17 00:00:00 2001 From: Ulf Lilleengen Date: Sat, 16 Aug 2008 09:56:52 +0200 Subject: - Simplify mfs_get_home path, using asprintf, and remove potential usage of NULL pointers. - Don't use memory that might be NULL pointer after allocating trackno, as well as check if malloc returned NULL in escape. --- src/mfs_subr.c | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/mfs_subr.c b/src/mfs_subr.c index d3d3c0b..d70bade 100644 --- a/src/mfs_subr.c +++ b/src/mfs_subr.c @@ -58,21 +58,17 @@ sqlite3 *handle; */ char *mfs_get_home_path(const char *extra) { - int hlen, exlen = 0; + int hlen, exlen; char *res; const char *home = getenv("HOME"); hlen = strlen(home); - if (extra) - exlen = strlen(extra); + exlen = (extra != NULL) ? strlen(extra) : 0; - res = malloc(sizeof(char) * (hlen + exlen + 2)); - strcpy(res, home); - - if (extra) { - res[hlen] = '/'; - strcpy(res + hlen + 1, extra); - } + if (exlen > 0) + asprintf(&res, "%s/%s", home, extra); + else + asprintf(&res, "%s", home); return (res); } @@ -399,8 +395,9 @@ mfs_scan(char *filepath) sqlite3_bind_int(st, 5, year); if (track) { - trackno = malloc(sizeof(char) * 9); - sprintf(trackno, "%02d", track); + asprintf(&trackno, "%02d", track); + if (trackno == NULL) + break; sqlite3_bind_text(st, 6, trackno, -1, SQLITE_TRANSIENT); free(trackno); } else { @@ -477,6 +474,9 @@ mfs_escape_sqlstring(const char *str) int len = strlen(str) + 1; escaped = malloc(sizeof(char) * len); + if (escaped == NULL) + return (NULL); + p = escaped; q = str; -- cgit v1.2.3