PERFORCE change 178286 for review
Garrett Cooper
gcooper at FreeBSD.org
Sat May 15 05:00:06 UTC 2010
http://p4web.freebsd.org/@@178286?ac=10
Change 178286 by gcooper at starr-bastion on 2010/05/15 04:59:21
1. Fix the prototype mismatch for unpack_to_buffer function.
2. Nuke all of the user-specifiable data as I'm almost positive that the user
specified buffer never be large enough to fit, and whether or not the user
was specifying heap or stack based buffers would be problematic to
determine.
Affected files ...
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/file.c#10 edit
.. //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/pkg.h#5 edit
Differences ...
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/file.c#10 (text+ko) ====
@@ -354,11 +354,11 @@
* returns NULL on failure.
*/
char*
-unpack_to_buffer(char *buffer, const char *pkg, const char *file)
+unpack_to_buffer(const char *pkg, const char *file)
{
FILE *fd = NULL;
- char *buf = buffer;
+ char *buf = NULL;
struct stat sb;
if ((fd = unpack_to_fd(pkg, file)) != NULL) {
@@ -370,22 +370,12 @@
* to malloc on the fly and let the user deal with it
* later.
*/
- if (buf != NULL)
- buf = malloc(sb.st_size);
+ buf = malloc(sb.st_size);
if (buf != NULL) {
-
if (fread(buf, sb.st_size, 1, fd) !=
sb.st_size) {
-
- /*
- * Don't try to free user specified
- * memory.
- */
- if (buffer == NULL)
- free(buf);
-
+ free(buf);
}
-
}
}
==== //depot/projects/soc2007/gcooper-pkg_install-enhancements-simplified/lib/libpkg/pkg.h#5 (text+ko) ====
@@ -189,8 +189,7 @@
void copy_hierarchy(const char *, const char *, Boolean);
int delete_hierarchy(const char *, Boolean, Boolean);
int unpack(const char *, const char *);
-char* unpack_to_buffer(struct archive *archive, const char *,
- const char *);
+char* unpack_to_buffer(const char *, const char *);
FILE* unpack_to_fd(const char *, const char *);
void format_cmd(char *, int, const char *, const char *, const char *);
More information about the p4-projects
mailing list