diff --git a/pkg.c b/pkg.c index c1667c3..dbc9d8d 100644 --- a/pkg.c +++ b/pkg.c @@ -131,8 +131,8 @@ pkg_get_parent_dir(pkg_t *pkg) char *pathbuf; strlcpy(buf, pkg->filename, sizeof buf); - pathbuf = strrchr(buf, PKG_DIR_SEP_S); - pathbuf[0] = '\0'; + if ((pathbuf = strrchr(buf, PKG_DIR_SEP_S)) != NULL) + pathbuf[0] = '\0'; return buf; } @@ -154,8 +154,10 @@ pkg_new_from_file(const char *filename, FILE *f) pkg->vars = pkg_tuple_add(pkg->vars, "pcfiledir", pkg_get_parent_dir(pkg)); /* make module id */ - idptr = strrchr(pkg->filename, PKG_DIR_SEP_S); - idptr++; + if ((idptr = strrchr(pkg->filename, PKG_DIR_SEP_S)) != NULL) + idptr++; + else + idptr = pkg->filename; pkg->id = strdup(idptr); idptr = strrchr(pkg->id, '.');