diff options
Diffstat (limited to 'src/util')
-rw-r--r-- | src/util/disk.c | 2 | ||||
-rw-r--r-- | src/util/os_installation.c | 3 | ||||
-rw-r--r-- | src/util/service.c | 3 |
3 files changed, 6 insertions, 2 deletions
diff --git a/src/util/disk.c b/src/util/disk.c index bcede53e4..94615f198 100644 --- a/src/util/disk.c +++ b/src/util/disk.c | |||
@@ -704,6 +704,8 @@ GNUNET_DISK_directory_scan (const char *dirName, | |||
704 | 704 | ||
705 | GNUNET_assert (dirName != NULL); | 705 | GNUNET_assert (dirName != NULL); |
706 | dname = GNUNET_STRINGS_filename_expand (dirName); | 706 | dname = GNUNET_STRINGS_filename_expand (dirName); |
707 | if (dname == NULL) | ||
708 | return GNUNET_SYSERR; | ||
707 | while ((strlen (dname) > 0) && (dname[strlen (dname) - 1] == DIR_SEPARATOR)) | 709 | while ((strlen (dname) > 0) && (dname[strlen (dname) - 1] == DIR_SEPARATOR)) |
708 | dname[strlen (dname) - 1] = '\0'; | 710 | dname[strlen (dname) - 1] = '\0'; |
709 | if (0 != STAT (dname, &istat)) | 711 | if (0 != STAT (dname, &istat)) |
diff --git a/src/util/os_installation.c b/src/util/os_installation.c index c61028187..19469e81e 100644 --- a/src/util/os_installation.c +++ b/src/util/os_installation.c | |||
@@ -96,11 +96,12 @@ get_path_from_proc_exe () | |||
96 | GNUNET_snprintf (fn, | 96 | GNUNET_snprintf (fn, |
97 | sizeof(fn), "/proc/%u/exe", getpid ()); | 97 | sizeof(fn), "/proc/%u/exe", getpid ()); |
98 | size = readlink (fn, lnk, sizeof (lnk)-1); | 98 | size = readlink (fn, lnk, sizeof (lnk)-1); |
99 | if ((size == 0) || (size >= sizeof(lnk)-1)) | 99 | if (size <= 0) |
100 | { | 100 | { |
101 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "readlink", fn); | 101 | GNUNET_log_strerror_file (GNUNET_ERROR_TYPE_ERROR, "readlink", fn); |
102 | return NULL; | 102 | return NULL; |
103 | } | 103 | } |
104 | GNUNET_assert (size < sizeof (lnk)); | ||
104 | lnk[size] = '\0'; | 105 | lnk[size] = '\0'; |
105 | while ((lnk[size] != '/') && (size > 0)) | 106 | while ((lnk[size] != '/') && (size > 0)) |
106 | size--; | 107 | size--; |
diff --git a/src/util/service.c b/src/util/service.c index a4316768d..cd27380ee 100644 --- a/src/util/service.c +++ b/src/util/service.c | |||
@@ -732,10 +732,11 @@ add_unixpath (struct sockaddr **saddrs, | |||
732 | unixpath, | 732 | unixpath, |
733 | slen); | 733 | slen); |
734 | un->sun_path[slen] = '\0'; | 734 | un->sun_path[slen] = '\0'; |
735 | slen += sizeof (sa_family_t); | ||
736 | #if LINUX | 735 | #if LINUX |
737 | un->sun_path[0] = '\0'; | 736 | un->sun_path[0] = '\0'; |
738 | slen = sizeof (struct sockaddr_un); | 737 | slen = sizeof (struct sockaddr_un); |
738 | #else | ||
739 | slen += sizeof (sa_family_t); | ||
739 | #endif | 740 | #endif |
740 | *saddrs = (struct sockaddr*) un; | 741 | *saddrs = (struct sockaddr*) un; |
741 | *saddrlens = slen; | 742 | *saddrlens = slen; |