From: Kruti Pendharkar Date: Tue, 22 Jul 2025 07:06:54 +0000 (-0700) Subject: Change to common source files not applicable to open-vm-tools. X-Git-Tag: stable-13.1.0~126 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=3519f2343febe4ff9f465422baf64a2f5bc76fd3;p=thirdparty%2Fopen-vm-tools.git Change to common source files not applicable to open-vm-tools. --- diff --git a/open-vm-tools/lib/file/fileTemp.c b/open-vm-tools/lib/file/fileTemp.c index 31fddd2fe..d23cf02db 100644 --- a/open-vm-tools/lib/file/fileTemp.c +++ b/open-vm-tools/lib/file/fileTemp.c @@ -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. @@ -67,12 +70,14 @@ 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); } diff --git a/open-vm-tools/lib/include/file.h b/open-vm-tools/lib/include/file.h index d863ba9a8..fc7798456 100644 --- a/open-vm-tools/lib/include/file.h +++ b/open-vm-tools/lib/include/file.h @@ -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);