summaryrefslogtreecommitdiffstats
path: root/programs/util.h
diff options
context:
space:
mode:
authorYann Collet <yann.collet.73@gmail.com>2023-02-26 18:23:05 (GMT)
committerYann Collet <yann.collet.73@gmail.com>2023-02-26 18:40:28 (GMT)
commit45a4880b9cbb47ddc6c1758744629b5835d5dd19 (patch)
treec9ae72bd0d6a6864f061db33cab3848c92337600 /programs/util.h
parentecf92d0897587c0f641df9db83c910fd236cb18a (diff)
downloadlz4-45a4880b9cbb47ddc6c1758744629b5835d5dd19.zip
lz4-45a4880b9cbb47ddc6c1758744629b5835d5dd19.tar.gz
lz4-45a4880b9cbb47ddc6c1758744629b5835d5dd19.tar.bz2
refuse to compress directories
fix #1211, reported by @imba-tjd
Diffstat (limited to 'programs/util.h')
-rw-r--r--programs/util.h20
1 files changed, 16 insertions, 4 deletions
diff --git a/programs/util.h b/programs/util.h
index 3192ddc..f1d8a92 100644
--- a/programs/util.h
+++ b/programs/util.h
@@ -195,10 +195,7 @@ UTIL_STATIC void* UTIL_realloc(void* ptr, size_t size)
/*-****************************************
* String functions
******************************************/
-/*
- * A modified version of realloc().
- * If UTIL_realloc() fails the original block is freed.
-*/
+/* supports a==NULL or b==NULL */
UTIL_STATIC int UTIL_sameString(const char* a, const char* b)
{
assert(a!=NULL && b!=NULL); /* unsupported scenario */
@@ -430,6 +427,21 @@ UTIL_STATIC int UTIL_isRegFile(const char* infilename)
return UTIL_getFileStat(infilename, &statbuf); /* Only need to know whether it is a regular file */
}
+UTIL_STATIC int UTIL_isDir(const char* infilename)
+{
+ stat_t statbuf;
+ int r;
+#if defined(_MSC_VER)
+ r = _stat64(infilename, &statbuf);
+ if (r) return 0;
+ return (statbuf.st_mode & S_IFDIR);
+#else
+ r = stat(infilename, &statbuf);
+ if (r) return 0;
+ return (S_ISDIR(statbuf.st_mode));
+#endif
+}
+
UTIL_STATIC U32 UTIL_isDirectory(const char* infilename)
{