Page MenuHomeFreeBSD

D7198.diff
No OneTemporary

D7198.diff

Index: ports-mgmt/portfind/Makefile
===================================================================
--- ports-mgmt/portfind/Makefile
+++ ports-mgmt/portfind/Makefile
@@ -2,6 +2,7 @@
PORTNAME= portfind
PORTVERSION= 1.6.1
+PORTREVISION= 1
CATEGORIES= ports-mgmt perl5
MASTER_SITES= http://dynsoft.com/files/
Index: ports-mgmt/portfind/files/patch-portfind.c
===================================================================
--- /dev/null
+++ ports-mgmt/portfind/files/patch-portfind.c
@@ -0,0 +1,80 @@
+--- portfind.c.orig 2014-08-24 15:54:28 UTC
++++ portfind.c
+@@ -103,20 +103,25 @@ int main(int argc, char **argv) {
+ return 0;
+ }
+
++ char *filename;
+ char *release = get_release();
++
+ if(!release) {
+ fprintf(stderr, "Could not determine release\n");
+ return 1;
+ }
+
+- char *filename = calloc(strlen(release) + strlen(INDEX_FILE) + 1, sizeof(char));
+- sprintf(filename, "%s%s", INDEX_FILE, release);
++ asprintf(&filename, INDEX_FILE "%s", release);
++ if (filename == NULL) {
++ fprintf(stderr, "Could not allocate memory for `filename`\n");
++ return 1;
++ }
+ free(release);
+
+ FILE *file = fopen(filename, "r");
+ free(filename);
+ if(!file) {
+- fprintf(stderr, "Could not open %s\n", INDEX_FILE);
++ fprintf(stderr, "Could not open %s\n", filename);
+ return 1;
+ }
+
+@@ -435,25 +440,32 @@ char *get_installed_version(const char *
+ return version;
+ }
+
+-char *get_release() {
+- size_t length = 0;
+- sysctlbyname("kern.osrelease", NULL, &length, NULL, 0);
+- if(length == 0)
+- return NULL;
+-
+- char *release = calloc(length, sizeof(char));
+- char *version = calloc(length, sizeof(char));
+- char *tmp = version;
+- sysctlbyname("kern.osrelease", release, &length, NULL, 0);
+- char c = *release;
+- while(c != '.' && c != '\0') {
+- *tmp++ = c;
+- c = *(++release);
+- }
++char *get_release(void) {
++ char *first_dot, *release;
++ size_t length;
+
++ release = NULL;
++
++ if (sysctlbyname("kern.osrelease", NULL, &length, NULL, 0) == -1)
++ goto fail;
++
++ if ((release = malloc(sizeof(char) * length)) == NULL)
++ goto fail;
++
++ if (sysctlbyname("kern.osrelease", release, &length, NULL, 0) == -1)
++ goto fail;
++
++ if ((first_dot = strchr(release, '.')) == NULL)
++ goto fail;
++
++ *first_dot = '\0';
++
++ return release;
++
++fail:
+ free(release);
+
+- return version;
++ return NULL;
+ }
+
+ void help(const char *program) {

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 20, 8:28 AM (15 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
27093817
Default Alt Text
D7198.diff (2 KB)

Event Timeline