]> git.ipfire.org Git - thirdparty/open-vm-tools.git/commitdiff
Change to common source files not applicable to open-vm-tools.
authorKruti Pendharkar <kp025370@broadcom.com>
Tue, 22 Jul 2025 07:06:54 +0000 (00:06 -0700)
committerKruti Pendharkar <kp025370@broadcom.com>
Tue, 22 Jul 2025 07:06:54 +0000 (00:06 -0700)
open-vm-tools/lib/file/fileTemp.c
open-vm-tools/lib/include/file.h

index 31fddd2fe7d220e4179d30b25cb758feb655b614..d23cf02dbb07ffc365f92549fd40d9ed705887cf 100644 (file)
@@ -1,5 +1,6 @@
 /*********************************************************
- * Copyright (C) 2011-2020 VMware, Inc. All rights reserved.
+ * Copyright (c) 2011-2025 Broadcom. All Rights Reserved.
+ * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
  *
  * This program is free software; you can redistribute it and/or modify it
  * under the terms of the GNU Lesser General Public License as published
@@ -55,6 +56,8 @@
  *      Regardless of the input value of *var, the output value will
  *      be even or odd as determined by createTempFile.
  *
+ *      The parameter "prefix" is a 24-bit unsigned integer.
+ *
  * Results:
  *      An odd number if createTempFile is TRUE.
  *      An even number if createTempFile is FALSE.
 
 static void
 FileTempNum(Bool createTempFile,  // IN:
+            uint32 prefix,        // IN:
             uint32 *var)          // IN/OUT:
 {
    ASSERT(var != NULL);
 
    *var += (FileSimpleRandom() >> 8) & 0xFF;
    *var = (*var & ~0x1) | (createTempFile ? 1 : 0);
+   *var |= (prefix << 8);
 }
 
 
@@ -103,6 +108,8 @@ FileTempNum(Bool createTempFile,  // IN:
  *
  *      Check the documentation for File_MakeTempHelperFunc.
  *
+ *      The parameter "prefix" is a 24-bit unsigned integer.
+ *
  * Results:
  *      if a temporary file is created, then Open file descriptor or -1;
  *      if a temporary directory is created, then 0 or -1;
@@ -125,12 +132,12 @@ FileMakeTempEx2Work(const char *dir,                              // IN:
                     Bool makeSubdirSafe,                          // IN:
                     File_MakeTempCreateNameFunc *createNameFunc,  // IN:
                     void *createNameFuncData,                     // IN:
+                    uint32 prefix,                                // IN:
                     char **presult)                               // OUT:
 {
    uint32 i;
 
    int fd;
-   uint32 var = 0;
 
    ASSERT(presult != NULL);
 
@@ -145,6 +152,7 @@ FileMakeTempEx2Work(const char *dir,                              // IN:
    for (i = 0; i < (MAX_INT32 / 2); i++) {
       char *objName;
       char *pathName;
+      uint32 var = 0;
 
       /*
        * Files and directories are kept separate (odd and even respectfully).
@@ -154,7 +162,7 @@ FileMakeTempEx2Work(const char *dir,                              // IN:
        * Not attempting an open on a directory is a good thing...
        */
 
-      FileTempNum(createTempFile, &var);
+      FileTempNum(createTempFile, prefix, &var);
 
       objName = (*createNameFunc)(var, createNameFuncData);
       ASSERT(objName != NULL);
@@ -233,10 +241,43 @@ File_MakeTempEx2(const char *dir,                              // IN:
                  char **presult)                               // OUT:
 {
    return FileMakeTempEx2Work(dir, createTempFile, FALSE, createNameFunc,
-                              createNameFuncData, presult);
+                              createNameFuncData, 0, presult);
 }
 
 
+/*
+ *----------------------------------------------------------------------
+ *
+ *  File_MakeTempEx3 --
+ *
+ *      Same as FileMakeTempEx2Int, defaulting 'makeSubdirSafe' to
+ *      FALSE.
+ *
+ *      Add support with a prefix for temp file random number generation.
+ *
+ *      The parameter "prefix" is a 24-bit unsigned integer.
+ *
+ * Results:
+ *      See FileMakeTempEx2Int.
+ *
+ * Side effects:
+ *      See FileMakeTempEx2Int.
+ *
+ *----------------------------------------------------------------------
+ */
+
+int
+File_MakeTempEx3(const char *dir,                              // IN:
+                 Bool createTempFile,                          // IN:
+                 File_MakeTempCreateNameFunc *createNameFunc,  // IN:
+                 void *createNameFuncData,                     // IN:
+                 uint32 prefix,                                // IN:
+                 char **presult)                               // OUT:
+{
+   return FileMakeTempEx2Work(dir, createTempFile, FALSE, createNameFunc,
+                              createNameFuncData, prefix, presult);
+}
+
 /*
  *----------------------------------------------------------------------------
  *
@@ -337,7 +378,7 @@ File_MakeSafeTempDir(const char *prefix)  // IN:
       const char *effectivePrefix = (prefix == NULL) ? "safeDir" : prefix;
 
       FileMakeTempEx2Work(dir, FALSE, TRUE, FileMakeTempExCreateNameFunc,
-                          (void *) effectivePrefix, &result);
+                          (void *) effectivePrefix, 0, &result);
 
       Posix_Free(dir);
    }
index d863ba9a85b216def055a44133dcaf12ab6529ba..fc77984566170ab5c12d1e219c9201904b73ba71 100644 (file)
@@ -1,5 +1,5 @@
 /*********************************************************
- * Copyright (c) 1998-2024 Broadcom. All Rights Reserved.
+ * Copyright (c) 1998-2025 Broadcom. All Rights Reserved.
  * The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
  *
  * This program is free software; you can redistribute it and/or modify it
@@ -245,6 +245,13 @@ int File_MakeTempEx2(const char *dir,
                      void *createFuncData,
                      char **presult);
 
+int File_MakeTempEx3(const char *dir,
+                     Bool createTempFile,
+                     File_MakeTempCreateNameFunc *createNameFunc,
+                     void *createFuncData,
+                     uint32 prefix,
+                     char **presult);
+
 char *File_MakeSafeTempDir(const char *prefix);
 char *File_MakeSafeTempSubdir(const char *safeDir, const char *subdirName);