]> andersk Git - openssh.git/commitdiff
- ray@cvs.openbsd.org 2006/11/23 01:35:11
authordjm <djm>
Fri, 5 Jan 2007 05:24:47 +0000 (05:24 +0000)
committerdjm <djm>
Fri, 5 Jan 2007 05:24:47 +0000 (05:24 +0000)
     [misc.c sftp.c]
     Don't access buf[strlen(buf) - 1] for zero-length strings.
     ``ok by me'' djm@.

ChangeLog
misc.c
sftp.c

index 2c9c9bed5b0bf4e2d960af6f55571bb0a53bc3ae..f071e9b2589586406059316104035f6ce2982a2a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -3,6 +3,10 @@
    - deraadt@cvs.openbsd.org 2006/11/14 19:41:04
      [ssh-keygen.c]
      use argc and argv not some made up short form
+   - ray@cvs.openbsd.org 2006/11/23 01:35:11
+     [misc.c sftp.c]
+     Don't access buf[strlen(buf) - 1] for zero-length strings.
+     ``ok by me'' djm@.
 
 20061205
  - (djm) [auth.c] Fix NULL pointer dereference in fakepw().  Crash would
diff --git a/misc.c b/misc.c
index 78bca2faefa77c782b7968ccaa67b771c7cbdd3f..625a34368f425e676564a26c8b63a5ccb32c11a3 100644 (file)
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.64 2006/08/03 03:34:42 deraadt Exp $ */
+/* $OpenBSD: misc.c,v 1.65 2006/11/23 01:35:11 ray Exp $ */
 /*
  * Copyright (c) 2000 Markus Friedl.  All rights reserved.
  * Copyright (c) 2005,2006 Damien Miller.  All rights reserved.
@@ -616,6 +616,8 @@ read_keyfile_line(FILE *f, const char *filename, char *buf, size_t bufsz,
    u_long *lineno)
 {
        while (fgets(buf, bufsz, f) != NULL) {
+               if (buf[0] == '\0')
+                       continue;
                (*lineno)++;
                if (buf[strlen(buf) - 1] == '\n' || feof(f)) {
                        return 0;
diff --git a/sftp.c b/sftp.c
index a39c782f70e28af2c508329246ffd474aac9ee40..990b0cbbd0ff2b8f845382c6357f1f809f9a4507 100644 (file)
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.93 2006/09/30 17:48:22 ray Exp $ */
+/* $OpenBSD: sftp.c,v 1.94 2006/11/23 01:35:11 ray Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -298,11 +298,11 @@ static char *
 path_append(char *p1, char *p2)
 {
        char *ret;
-       int len = strlen(p1) + strlen(p2) + 2;
+       size_t len = strlen(p1) + strlen(p2) + 2;
 
        ret = xmalloc(len);
        strlcpy(ret, p1, len);
-       if (p1[strlen(p1) - 1] != '/')
+       if (p1[0] != '\0' && p1[strlen(p1) - 1] != '/')
                strlcat(ret, "/", len);
        strlcat(ret, p2, len);
 
This page took 0.147153 seconds and 5 git commands to generate.