Fossil SCM

Handle errors in blob_read_link().

dmitry 2011-08-28 10:43 symlinks
Commit d43029f6f450fbbea36199e5abdec18972c628fd
1 file changed +5 -5
+5 -5
--- src/blob.c
+++ src/blob.c
@@ -711,21 +711,21 @@
711711
** Returns length of destination path.
712712
**
713713
** On windows, zeros blob and returns 0.
714714
*/
715715
int blob_read_link(Blob *pBlob, const char *zFilename){
716
+ blob_zero(pBlob);
716717
#if !defined(_WIN32)
717718
char zBuf[1024];
718719
ssize_t len = readlink(zFilename, zBuf, 1023);
719
- blob_zero(pBlob);
720
- if (len > 0) {
721
- zBuf[len] = 0;
722
- blob_appendf(pBlob, "%s", zBuf);
720
+ if( len < 0 ){
721
+ fossil_panic("cannot read symbolic link %s", zFilename);
723722
}
723
+ zBuf[len] = 0; /* null-terminate */
724
+ blob_appendf(pBlob, "%s", zBuf);
724725
return len;
725726
#else
726
- blob_zero(pBlob);
727727
return 0;
728728
#endif
729729
}
730730
731731
732732
--- src/blob.c
+++ src/blob.c
@@ -711,21 +711,21 @@
711 ** Returns length of destination path.
712 **
713 ** On windows, zeros blob and returns 0.
714 */
715 int blob_read_link(Blob *pBlob, const char *zFilename){
 
716 #if !defined(_WIN32)
717 char zBuf[1024];
718 ssize_t len = readlink(zFilename, zBuf, 1023);
719 blob_zero(pBlob);
720 if (len > 0) {
721 zBuf[len] = 0;
722 blob_appendf(pBlob, "%s", zBuf);
723 }
 
 
724 return len;
725 #else
726 blob_zero(pBlob);
727 return 0;
728 #endif
729 }
730
731
732
--- src/blob.c
+++ src/blob.c
@@ -711,21 +711,21 @@
711 ** Returns length of destination path.
712 **
713 ** On windows, zeros blob and returns 0.
714 */
715 int blob_read_link(Blob *pBlob, const char *zFilename){
716 blob_zero(pBlob);
717 #if !defined(_WIN32)
718 char zBuf[1024];
719 ssize_t len = readlink(zFilename, zBuf, 1023);
720 if( len < 0 ){
721 fossil_panic("cannot read symbolic link %s", zFilename);
 
 
722 }
723 zBuf[len] = 0; /* null-terminate */
724 blob_appendf(pBlob, "%s", zBuf);
725 return len;
726 #else
 
727 return 0;
728 #endif
729 }
730
731
732

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button